Encoding method, decoding method, encoder, and decoder

ABSTRACT

An encoding method generates a parity bit sequence by encoding an information sequence with feed-forward LDPC convolutional codes based on a plurality of parity check polynomials each having a coding rate of (n−1)/n, then performs an interleaving process and an accumulation process. The accumulation process is an exclusive OR operation performed on bits of the interleaved parity bit sequence and on bits of a delayed accumulated parity bit sequence. A coded sequence is then generated from the information sequence and the accumulated parity bit sequence.

TECHNICAL FIELD

This application is based on application No. 2011-010908 filed in Japan on Jan. 21, 2011, on application No. 2011-061160 filed in Japan on Mar. 18, 2011, and on application No. 2011-097670 filed in Japan on Apr. 25, 2011, the content of which is hereby incorporated by reference.

The present invention relates to an encoding method, a decoding method, an encoder, and a decoder using low-density parity check convolutional codes (LDPC-CC) supporting a plurality of coding rates.

BACKGROUND ART

In recent years, attention has been attracted to a low-density parity-check (LDPC) code as an error correction code that provides high error correction capability with a feasible circuit scale. Because of its high error correction capability and ease of implementation, an LDPC code has been adopted in an error correction coding scheme for IEEE802.11n high-speed wireless LAN systems, digital broadcasting systems, and so forth.

An LDPC code is an error correction code defined by low-density parity check matrix H. Furthermore, the LDPC code is a block code having the same block length as the number of columns N of check matrix H (see Non-Patent Literature 1, Non-Patent Literature 2, Non-Patent Literature 3). For example, random LDPC code, QC-LDPC code (QC: Quasi-Cyclic) are proposed.

However, a characteristic of many current communication systems is that transmission information is collectively transmitted per variable-length packet or frame, as in the case of Ethernet (registered trademark). A problem with applying an LDPC code, which is a block code, to a system of this kind is, for example, how to make a fixed-length LDPC code block correspond to a variable-length Ethernet (registered trademark) frame. IEEE802.11n applies padding processing or puncturing processing to a transmission information sequence, and thereby adjusts the length of the transmission information sequence and the block length of the LDPC code. However, it is difficult to prevent the coding rate from being changed or a redundant sequence from being transmitted through padding or puncturing.

Studies are being carried out on LDPC-CC (Low-Density Parity Check Convolutional Codes) capable of performing encoding or decoding on an information sequence of an arbitrary length for LDPC code (hereinafter, LDPC-BC: Low-Density Parity Check Block Code) of such a block code (e.g. see Non-Patent Literature 8 and Non-Patent Literature 9).

LDPC-CC is a convolutional code defined by a low-density parity check matrix. For example, parity check matrix H^(T)[0, n] of LDPC-CC having a coding rate of R=½ (=b/c) is shown in FIG. 1. Here, element h₁ ^((m))(t) of H^(T)[0, n] takes zero or one. All elements other than h₁ ^((m))(t) are zeroes. M represents the LDPC-CC memory length, and n represents the length of an LDPC-CC codeword. As shown in FIG. 1, a characteristic of an LDPC-CC check matrix is that it is a parallelogram-shaped matrix in which ones are placed only in diagonal terms of the matrix and neighboring elements, and the bottom-left and top-right elements of the matrix are zero.

An LDPC-CC encoder defined by parity check matrix H^(T)[0, n] where h₁ ⁽⁰⁾(t)=1 and h₂ ⁽⁰⁾(t)=1 is represented by FIG. 2. As shown in FIG. 2, an LDPC-CC encoder is formed with 2×(M+1) shift registers having a bit length of c and a mod 2 adder (exclusive OR operator). Thus, a feature of the LDPC-CC encoder is that it can be realized with a very simple circuit compared to a circuit that performs multiplication of a generator matrix or an LDPC-BC encoder that performs calculation based on a backward (forward) substitution method. Also, since the encoder in FIG. 2 is a convolutional code encoder, it is not necessary to divide an information sequence into fixed-length blocks when encoding, and an information sequence of any length can be encoded.

Patent Literature 1 describes an LDPC-CC generating method based on a parity check polynomial. In particular, Patent Literature 1 describes a method of generating an LDPC-CC using parity check polynomials having a time-varying period of two, a time-varying period of three, a time-varying period of four, and a time-varying period of a multiple of three.

CITATION LIST Patent Literature [Patent Literature 1]

-   Japanese Patent Application Publication No. 2009-246926

Non-Patent Literature [Non-Patent Literature 1]

-   R. G. Gallager, “Low-density parity check codes,” IRE Trans. Inform.     Theory, IT-8, pp. 21-28, 1962.

[Non-Patent Literature 2]

-   D. J. C. Mackay, “Good error-correcting codes based on very sparse     matrices,” IEEE Trans. Inform. Theory, vol. 45, no. 2, pp. 399-431,     March 1999.

[Non-Patent Literature 3]

-   M. P. C. Fossorier, “Quasi-cyclic low-density parity-check codes     from circulant permutation matrices,” IEEE Trans. Inform. Theory,     vol. 50, no. 8, pp. 1788-1793, November 2001.

[Non-Patent Literature 4]

-   M. P. C. Fossorier, M. Mihaljevic, and H. Imai, “Reduced complexity     iterative decoding of low-density parity check codes based on belief     propagation,” IEEE Trans. Commun., vol. 47, no. 5, pp. 673-680, May     1999.

[Non-Patent Literature 5]

-   J. Chen, A. Dholakia, E. Eleftheriou, M. P. C. Fossorier, and X.-Yu     Hu, “Reduced-complexity decoding of LDPC codes,” IEEE Trans.     Commun., vol. 53, no. 8, pp. 1288-1299, August 2005.

[Non-Patent Literature 6]

-   J. Zhang, and M. P. C. Fossorier, “Shuffled iterative decoding,”     IEEE Trans. Commun., vol. 53, no. 2, pp. 209-213, February 2005.

[Non-Patent Literature 7]

-   IEEE Standard for Local and Metropolitan Area Networks,     IEEEP802.16e/D12, October 2005.

[Non-Patent Literature 8]

-   A. J. Feltstrom, and K. S. Zigangirov, “Time-varying periodic     convolutional codes with low-density parity-check matrix,” IEEE     Trans. Inform. Theory, vol. 45, no. 6, pp. 2181-2191, September     1999.

[Non-Patent Literature 9]

-   R. M. Tanner, D. Sridhara, A. Sridharan, T. E. Fuja, and D. J.     Costello Jr., “LDPC block and convolutional codes based on circulant     matrices,” IEEE Trans. Inform. Theory, vol. 50, no. 12, pp.     2966-2984, December 2004.

[Non-Patent Literature 10]

-   H. H. Ma, and J. K. Wolf, “On tail biting convolutional codes,” IEEE     Trans. Commun., vol. com-34, no. 2, pp. 104-111, February 1986.

[Non-Patent Literature 11]

C. Weiss, C. Bettstetter, and S. Riedel, “Code construction and decoding of parallel concatenated tail-biting codes,” IEEE Trans. Inform. Theory, vol. 47, no. 1, pp. 366-386, January 2001.

[Non-Patent Literature 12]

-   M. B. S. Tavares, K. S. Zigangirov, and G. P. Fettweis, “Tail-biting     LDPC convolutional codes,” Proc. of IEEE ISIT 2007, pp. 2341-2345,     June 2007.

[Non-Patent Literature 13]

-   G. Miller, and D. Burshtein, “Bounds on the maximum likelihood     decoding error probability of low-density parity check codes,” IEEE     Trans. Inf. Theory, vol. 47, no. 7, pp. 2696-2710, November 2001.

[Non-Patent Literature 14]

-   R. G. Gallager, “A simple derivation of the coding theorem and some     applications,” IEEE Trans. Inf. Theory, vol. IT-11, no. 1, pp. 3-18,     January 1965.

[Non-Patent Literature 15]

-   A. J. Viterbi, “Error bounds for convolutional codes and an     asymptotically optimum decoding algorithm,” IEEE Trans. Inf. Theory,     vol. IT-13, no. 2, pp. 260-269, April 1967.

[Non-Patent Literature 16 ]

-   A. J. Viterbi, and J. K. Omura, “Principles of digital communication     and coding,” McGraw-Hill, New York, 1979.

[Non-Patent Literature 17]

-   C. Di, D. Proietti, E. Telatar, T. Richardson, and R. Urbanke,     “Finite-length analysis of low-density parity check codes on the     binary erasure channel,” IEEE Trans. Inform. Theory, vol. 48, pp.     1570-1579, June 2002.

[Non-Patent Literature 18]

-   T. Tian, C. R. Jones, J. D. Villasenor, and R. D. Wesel, “Selective     avoidance of cycles in irregular LDPC code construction,” IEEE     Trans. Commun., vol. 52, pp. 1242-1247, August 2004.

[Non-Patent Literature 19]

-   J. Chen, and M. P. C. Fossorier, “Density evolution for two improved     BP-based decoding algorithms of LDPC codes,” IEEE Commun. Lett.,     vol. 6, no. 5, pp. 208-210, May 2002.

[Non-Patent Literature 20]

-   Y. Murakami, S. Okamura, S. Okasaka, T. Kishigami, and M. Orihashi,     “LDPC convolutional codes based on parity check polynomials with a     time period of 3,” IEICE Trans. Fundamentals, vol. E-92, no. 10, pp.     2479-2483, October 2009.

[Non-Patent Literature 21]

-   C. Berrou, A. Glavieux, and P. Thitimajshima, “Near Shannon limit     error-correcting coding and decoding: Turbo-codes,” Proc. of IEEE     ICC93, pp. 1064-1070, May 1993.

[Non-Patent Literature 22]

-   S. Benedetto, D. Divsalar, G. Montorsi, and F. Pollara, “Serial     concatenation of interleaved codes: Performance analysis, design,     and iterative decoding,” IEEE Trans. Inform. Theory, vol. 44, no. 3,     pp. 906-926, May 1998.

[Non-Patent Literature 23]

-   C. Berrou, “The ten-year-old turbo codes are entering into service,”     IEEE Communication Magazine, vol. 41, no. 8, pp. 110-116, August     2003.

[Non-Patent Literature 24]

-   C. Douillard, and C. Berrou, “Turbo codes with rate-m/(m+1)     constituent convolutional codes,” IEEE Trans. Commun., vol. 53, no.     10, pp. 1630-1638, October 2005.

[Non-Patent Literature 25]

-   L. R. Bahl, J. Cocke, F. Jelinek, and J. Raviv, “Optimal decoding of     linear codes for minimizing symbol error rate,” IEEE Trans. Inform.     Theory, vol. IT-20, pp. 284-287, March 1974.

[Non-Patent Literature 26]

-   M. P. C. Fossorier, F. Burkert, S. Lin, and J. Hagenauer, “On the     equivalence between SOVA and max-log-MAP decodings,” IEEE Commun.     Letters, vol. 2, no. 5, pp. 137-139, May 1998.

[Non-Patent Literature 27]

-   S. Galli, “On the fair comparison of FEC schemes,” IEEE ICC2010, May     2010.

[Non-Patent Literature 28]

-   F. R. Kschischang, B. J. Frey, and H. Loeliger, “Factorgraphs and     the sum-product algorithm,” IEEE Trans. Inform. Theory, vol. 47, no.     2, pp. 399-431, February 1999.

[Non-Patent Literature 29]

-   M. Mansour, and N. Shanbhag, “High-throughput LDPC decoders,” IEEE     Trans. VLSI syst., vol. 11, no. 6, pp. 976-996, December 2003.

[Non-Patent Literature 30]

-   “Framing structure, channel coding and modulation for a second     generation digital terrestrial television broadcasting system     (DVB-T2),” DVB Document A122, June 2008.

[Non-Patent Literature 31]

-   D. Divsalar, H. Jin, and R. J. McEliece, “Coding theorems for     ‘turbo-like’ codes,” Proc. of 1998 Allerton Conf. Commun. and     Control, pp. 201-210, September 1998.

[Non-Patent Literature 32]

-   J. Li, K. R. Narayanan, and C. N. Georghiades, “Product accumulate     codes: a class of codes with near-capacity performance and low     decoding complexity,” IEEE Trans. Inform. Theory, vol. 50, pp.     31-46, January 2004.

[Non-Patent Literature 33]

-   M. Isaka, and M. P. C. Fossorier, “High-rate serially concatenated     coding with extended Hamming codes,” IEEE Commun. Lett., vol. 9, no.     2, pp. 160-162, February 2005.

[Non-Patent Literature 34]

-   P. A. Martin, M. Isaka, and M. P. C. Fossorier, “Serial     concatenation of linear block codes and rate-1 convolutional code,”     Proc. of 4th International symposium on Turbo Codes, no. 109, April     2006.

[Non-Patent Literature 35]

-   M. Isaka, P. A. Martin, and M. P. C. Fossorier, “Design of high-rate     serially concatenated codes with low error floor,” IEICE Trans.     Fundamentals, vol. E90-A, no. 9, pp. 1754-1762, September 2007.

[Non-Patent Literature 36]

-   T. J. Richardson, M. A. Shokrollahi, and R. L. Urbanke, “Design of     capacity-approaching irregular low-density parity-check codes,” IEEE     Trans. Inform. Theory, vol. 47, pp. 619-637, February 2001.

SUMMARY OF INVENTION Technical Problem

However, although Patent Literature 1 describes details of the method of generating an LDPC-CC having time-varying periods of two, three, and four, and having a time-varying period of a multiple of three, the time-varying periods are limited.

It is therefore an object of the present invention to provide an encoding method, a decoding method, an encoder, and a decoder of a time-varying LDPC-CC having high error correction capability.

Solution to Problem

One aspect of the encoding method of the present invention is an encoding method of performing low-density parity check convolutional coding (LDPC-CC) having a time-varying period of q using a parity check polynomial having a coding rate of (n−1)/n (where n is an integer equal to or greater than two), the time-varying period of q being a prime number greater than three, the method receiving an information sequence as input and encoding the information sequence using Math. 140 as the gth (g=0, 1, . . . , q−1) parity check polynomial that satisfies zero.

Another aspect of the encoding method of the present invention is an encoding method of performing low-density parity check convolutional coding (LDPC-CC) having a time-varying period of q using a parity check polynomial having a coding rate of (n−1)/n (where n is an integer equal to or greater than two), the time-varying period of q being a prime number greater than three, the method receiving an information sequence as input and encoding the information sequence using a parity check polynomial that satisfies:

a_(#0, k, 1)%  q = a_(#1, k, 1)%  q = a_(# 2, k, 1)%  q = a_(#3, k, 1)%  q = … = a_(#g, k, 1)%  q = … = a_(#q − 2, k, 1)%  q = a_(#q − 1, k, 1)%  q = v_(p = k)(where  v_(p = k)  is  a  fixed  value), b_(#0, 1)%  q = b_(#1, 1)%  q = b_(#2, 1)%  q = b_(#3, 1)%  q = … = b_(#g, 1)%  q = … = b_(#q − 2, 1)%  q = w(where  w  is  a  fixed-value), a_(#0, k, 2)%  q = a_(#1, k, 2)%  q = a_(#2, k, 2)%  q = a_(#3, k, 2)%  q = … = a_(#g, k, 2)%  q = … = a_(#q − 2, k, 2)%  q = a_(#q − 1, k, 2)%  q = y_(p = k)(where  y_(p = k)  is  a  fixed  value), b_(#0, 2)%  q = b_(#1, 2)%  q = b_(#2, 2)%  q = b_(#3, 2)%  q = … = b_(#g, 2)%  q = … = b_(#q − 2, 2)%  q = b_(#q 1, 2)%  q = z(where  z  is  a  fixed-value),   and a_(# 0, k, 3)%  q = a_(#1, k, 3)%  q = a_(#2, k, 3)%  q = a_(# 3, k, 3)%  q = a_(# 3, k, 3)%  q = … = a_(# g, k, 3)%  q = … = a_(#q − 2, k, 3)%  q = a_(#q − 1, k, 3)%  q = s_(p = k)(where  s_(p = k)  is  a  fixed  value)

of a gth (g=0, 1, . . . , q−1) parity check polynomial that satisfies zero represented by Math. 145 for k=1, 2, . . . , n−1.

A further aspect of the encoder of the present invention is an encoder that performs low-density parity check convolutional coding (LDPC-CC) having a time-varying period of q using a parity check polynomial having a coding rate of (n−1)/n (where n is an integer equal to or greater than two), the time-varying period of q being a prime number greater than three, including a generating section that receives information bit Xr[i](r=1, 2, . . . , n−1) at point in time i as input, designates a formula equivalent to the gth (g=0, 1, . . . , q−1) parity check polynomial that satisfies zero represented in Math. 140 as Math. 142 and generates parity bit P[i] at point in time i using a formula with k substituting for g in Math. 142 when i%q=k and an output section that outputs parity bit P[i].

Still another aspect of the decoding method of the present invention is a decoding method corresponding to the above-described encoding method for performing low-density parity check convolutional coding (LDPC-CC) having a time-varying period of q (prime number greater than three) using a parity check polynomial having a coding rate of (n−1)/n (where n is an integer equal to or greater than two), for decoding an encoded information sequence encoded using Math. 140 as the gth (g=0, 1, . . . , q−1) parity check polynomial that satisfies zero, the method receiving the encoded information sequence as input and decoding the encoded information sequence using belief propagation (hereinafter, BP) based on a parity check matrix generated using Math. 140 which is the gth parity check polynomial that satisfies zero.

Still a further aspect of the decoder of the present invention is a decoder corresponding to the above-described encoding method for performing low-density parity check convolutional coding (LDPC-CC) having a time-varying period of q (prime number greater than three) using a parity check polynomial having a coding rate of (n−1)/n (where n is an integer equal to or greater than two), that performs decoding an encoded information sequence encoded using Math. 140 as the gth (g=0, 1, . . . , q−1) parity check polynomial that satisfies zero, including a decoding section that receives the encoded information sequence as input and decodes the encoded information sequence using belief propagation (BP) based on a parity check matrix generated using Math. 140 which is the gth parity check polynomial that satisfies zero.

Advantageous Effects of Invention

The present invention can achieve high error correction capability, and can thereby secure high data quality.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 shows an LDPC-CC check matrix.

FIG. 2 shows a configuration of an LDPC-CC encoder.

FIG. 3 shows an example of LDPC-CC check matrix having a time-varying period of m.

FIG. 4A shows parity check polynomials of an LDPC-CC having a time-varying period of 3 and the configuration of parity check matrix H of this LDPC-CC.

FIG. 4B shows the belief propagation relationship of terms relating to X(D) of check equation #1 through check equation #3 in FIG. 4A.

FIG. 4C shows the belief propagation relationship of terms relating to X(D) of check equation #1 through check equation #6.

FIG. 5 shows a parity check matrix of a (7, 5) convolutional code.

FIG. 6 shows an example of the configuration of LDPC-CC check matrix H having a coding rate of ⅔ and a time-varying period of 2.

FIG. 7 shows an example of the configuration of an LDPC-CC check matrix having a coding rate of ⅔ and a time-varying period of m.

FIG. 8 shows an example of the configuration of an LDPC-CC check matrix having a coding rate of (n−1)/n and a time-varying period of m.

FIG. 9 shows an example of the configuration of an LDPC-CC encoding section.

FIG. 10 is a block diagram showing an example of parity check matrix.

FIG. 11 shows an example of an LDPC-CC tree having a time-varying period of six.

FIG. 12 shows an example of an LDPC-CC tree having a time-varying period of six.

FIG. 13 shows an example of the configuration of an LDPC-CC check matrix having a coding rate of (n−1)/n and a time-varying period of six.

FIG. 14 shows an example of an LDPC-CC tree having a time-varying period of seven.

FIG. 15A shows a circuit example of encoder having a coding rate of ½.

FIG. 15B shows a circuit example of encoder having a coding rate of ½.

FIG. 15C shows a circuit example of encoder having a coding rate of ½.

FIG. 16 shows a zero-termination method.

FIG. 17 shows an example of check matrix when zero-termination is performed.

FIG. 18A shows an example of check matrix when tail-biting is performed.

FIG. 18B shows an example of check matrix when tail-biting is performed.

FIG. 19 shows an overview of a communication system.

FIG. 20 is a conceptual diagram of a communication system using erasure correction coding using an LDPC code.

FIG. 21 is an overall configuration diagram of the communication system.

FIG. 22 shows an example of the configuration of an erasure correction coding-related processing section.

FIG. 23 shows an example of the configuration of the erasure correction coding-related processing section.

FIG. 24 shows an example of the configuration of the erasure correction coding-related processing section.

FIG. 25 shows an example of the configuration of the erasure correction encoder.

FIG. 26 is an overall configuration diagram of the communication system.

FIG. 27 shows an example of the configuration of the erasure correction coding-related processing section.

FIG. 28 shows an example of the configuration of the erasure correction coding-related processing section.

FIG. 29 shows an example of the configuration of the erasure correction coding section supporting a plurality of coding rates.

FIG. 30 shows an overview of encoding by the encoder.

FIG. 31 shows an example of the configuration of the erasure correction coding section supporting a plurality of coding rates.

FIG. 32 shows an example of the configuration of the erasure correction coding section supporting a plurality of coding rates.

FIG. 33 shows an example of the configuration of the decoder supporting a plurality of coding rates.

FIG. 34 shows an example of the configuration of a parity check matrix used by a decoder supporting a plurality of coding rates.

FIG. 35 shows an example of the packet configuration when erasure correction coding is performed and when erasure correction coding is not performed.

FIG. 36 shows a relationship between check nodes corresponding to parity check polynomials #α and #β, and a variable node.

FIG. 37 shows a sub-matrix generated by extracting only parts relating to X₁(D) of parity check matrix H.

FIG. 38 shows an example of LDPC-CC tree having a time-varying period of seven.

FIG. 39 shows an example of LDPC-CC tree having a time-varying period of h as a time-varying period of six.

FIG. 40 shows a BER characteristic of regular TV11-LDPC-CCs of #1, #2 and #3 in Table 9.

FIG. 41 shows a parity check matrix corresponding to gth (g=0, 1, . . . , h−1) parity check polynomial (83) having a coding rate of (n−1)/n and a time-varying period of h.

FIG. 42 shows an example of reordering pattern when information packets and parity packets are configured independently.

FIG. 43 shows an example of reordering pattern when information packets and parity packets are configured without distinction therebetween.

FIG. 44 shows details of the encoding method (encoding method at packet level) in a layer higher than a physical layer.

FIG. 45 shows details of another encoding method (encoding method at packet level) in a layer higher than a physical layer.

FIG. 46 shows a configuration example of parity group and sub-parity packets.

FIG. 47 shows a shortening method [Method #1-2].

FIG. 48 shows an insertion rule in the shortening method [Method #1-2].

FIG. 49 shows a relationship between positions at which known information is inserted and error correction capability.

FIG. 50 shows the correspondence between a parity check polynomial and points in time.

FIG. 51 shows a shortening method [Method #2-2].

FIG. 52 shows a shortening method [Method #2-4].

FIG. 53 is a block diagram showing an example of encoding-related part when a variable coding rate is adopted in a physical layer.

FIG. 54 is a block diagram showing another example of encoding-related part when a variable coding rate is adopted in a physical layer.

FIG. 55 is a block diagram showing an example of the configuration of the error correction decoding section in the physical layer.

FIG. 56 shows an erasure correction method [Method #3-1].

FIG. 57 shows an erasure correction method [Method #3-3].

FIG. 58 shows information-zero-termination for an LDPC-CC having a coding rate of (n−1)/n.

FIG. 59 shows an encoding method according to Embodiment 12.

FIG. 60 is a diagram schematically showing a parity check polynomial of LDPC-CC having coding rates of ½ and ⅔ that allows the circuit to be shared between an encoder and a decoder.

FIG. 61 is a block diagram showing an example of main components of an encoder according to Embodiment 13.

FIG. 62 shows an internal configuration of a first information computing section.

FIG. 63 shows an internal configuration of a parity computing section.

FIG. 64 shows another configuration example of the encoder according to Embodiment 13.

FIG. 65 is a block diagram showing an example of main components of the decoder according to Embodiment 13.

FIG. 66 illustrates operations of a log-likelihood ratio setting section for a coding rate of ½.

FIG. 67 illustrates operations of a log-likelihood ratio setting section for a coding rate of ⅔.

FIG. 68 shows an example of the configuration of a communication apparatus equipped with the encoder according to Embodiment 13.

FIG. 69 shows an example of a transmission format.

FIG. 70 shows an example of the configuration of the communication apparatus equipped with the encoder according to Embodiment 13.

FIG. 71 is a Tanner graph.

FIG. 72 shows a BER characteristic of LDPC-CC having a time-varying period of 23 based on parity check polynomials having a coding rate R=½, ⅓, in an AWGN environment.

FIG. 73 shows a parity check matrix H according to Embodiment 15.

FIG. 74 describes the configuration of the parity check matrix.

FIG. 75 describes the configuration of the parity check matrix.

FIG. 76 is an overall diagram of a communication system.

FIG. 77 is a system configuration diagram including a device executing a transmission method and a reception method.

FIG. 78 illustrates a sample configuration of a reception device executing a reception method.

FIG. 79 illustrates a sample configuration for multiplexed data.

FIG. 80 is a schematic diagram illustrating an example of the manner in which the multiplexed data are multiplexed.

FIG. 81 illustrates an example of storage in a video stream.

FIG. 82 illustrates the format of TS packets ultimately written into the multiplexed data.

FIG. 83 describes the details of PMT data structure.

FIG. 84 illustrates the configuration of file information for the multiplexed data.

FIG. 85 illustrates the configuration of stream attribute information.

FIG. 86 illustrates the configuration of a sample audiovisual output device.

FIG. 87 illustrates a sample broadcasting system using a method of switching between precoding matrices according to a rule.

FIG. 88 shows an example of the configuration of an encoder.

FIG. 89 illustrates the configuration of an accumulator.

FIG. 90 illustrates the configuration of the accumulator.

FIG. 91 illustrates the configuration of a parity check matrix.

FIG. 92 illustrates the configuration of the parity check matrix.

FIG. 93 illustrates the configuration of the parity check matrix.

FIG. 94 illustrates the parity check matrix.

FIG. 95 illustrates a partial matrix.

FIG. 96 illustrates the partial matrix.

FIG. 97 illustrates the parity check matrix.

FIG. 98 illustrates the relations in the partial matrix.

FIG. 99 illustrates the partial matrix.

FIG. 100 illustrates the partial matrix.

FIG. 101 illustrates the partial matrix.

FIG. 102 illustrates the parity check matrix.

FIG. 103 illustrates the parity check matrix.

FIG. 104 illustrates the parity check matrix.

FIG. 105 illustrates the parity check matrix.

FIG. 106 illustrates the configuration pertaining to interleaving.

FIG. 107 illustrates the parity check matrix.

FIG. 108 illustrates the configuration pertaining to decoding.

FIG. 109 illustrates the parity check matrix.

FIG. 110 illustrates the parity check matrix.

FIG. 111 illustrates the partial matrix.

FIG. 112 illustrates the partial matrix.

FIG. 113 shows an example of the configuration of an encoder.

FIG. 114 illustrates a processor pertaining to information X_(k).

FIG. 115 illustrates the parity check matrix.

FIG. 116 illustrates the parity check matrix.

FIG. 117 illustrates the parity check matrix.

FIG. 118 illustrates the parity check matrix.

FIG. 119 illustrates the partial matrix.

FIG. 120 illustrates the parity check matrix.

FIG. 121 illustrates the relations in the partial matrix.

FIG. 122 illustrates the partial matrix.

FIG. 123 illustrates the partial matrix.

FIG. 124 illustrates the parity check matrix.

FIG. 125 illustrates the parity check matrix.

FIG. 126 illustrates the parity check matrix.

FIG. 127 shows an example of the configuration of an encoder.

FIG. 128 illustrates the parity check matrix.

FIG. 129 illustrates the parity check matrix.

FIG. 130 illustrates the parity check matrix.

FIG. 131 illustrates the parity check matrix.

FIG. 132 illustrates the parity check matrix.

FIG. 133 illustrates the relations in the partial matrix.

FIG. 134 illustrates the partial matrix.

FIG. 135 illustrates the relations in the partial matrix.

FIG. 136 illustrates the parity check matrix.

FIG. 137 illustrates the parity check matrix.

FIG. 138 illustrates the parity check matrix.

FIG. 139 shows an example of the configuration of an encoder.

FIG. 140 illustrates the parity check matrix.

FIG. 141 illustrates the parity check matrix.

FIG. 142 illustrates the parity check matrix.

FIG. 143 illustrates the parity check matrix.

FIG. 144 illustrates the parity check matrix.

FIG. 145 illustrates the relations in the partial matrix.

FIG. 146 illustrates the partial matrix.

FIG. 147 illustrates the partial matrix.

FIG. 148 illustrates the parity check matrix.

FIG. 149 illustrates the parity check matrix.

FIG. 150 illustrates the parity check matrix.

DESCRIPTION OF EMBODIMENTS

Embodiments of the present invention are described below, with reference to the accompanying drawings.

Before describing specific configurations and operations of the Embodiments, an LDPC-CC based on parity check polynomials described in Patent Literature 1 is described first.

[LDPC-CC according to Parity Check Polynomials]

First, an LDPC-CC having a time-varying period of four is described. A case in which the coding rate is ½ is described below as an example.

Consider Math. 1-1 through 1-4 as parity check polynomials of an LDPC-CC having a time-varying period of four. Here, X(D) is a polynomial representation of data (information) and P(D) is a parity polynomial representation. In Math. 1-1 through 1-4, parity check polynomials have been assumed in which there are four terms in X(D) and P(D), respectively, the reason being that four terms are desirable from the standpoint of achieving good received quality.

[Math. 1]

(D ^(a1) +D ^(a2) +D ^(a3) +D ^(a4))X(D)+(D ^(b1) +D ^(b2) +D ^(b3) +D ^(b4))P(D)=0  (Math. 1-1)

(D ^(A1) +D ^(A2) +D ^(A3) +D ^(A4))X(D)+(D ^(B1) +D ^(B2) +D ^(B3) +D ^(B4))P(D)=0  (Math. 1-2)

(D ^(α1) +D ^(α2) +D ^(α3) +D ^(α4))X(D)+(D ^(β1) +D ^(β2) +D ^(β3) +D ^(β4))P(D)=0  (Math. 1-3)

(D ^(E1) +D ^(E2) +D ^(E3) +D ^(E4))X(D)+(D ^(F1) +D ^(F2) +D ^(F3) +D ^(F4))P(D)=0  (Math. 1-4)

In Math. 1-1, it is assumed that a1, a2, a3, and a4 are integers (where a1≠a2≠a3≠a4, such that a1 through a4 are all different). The notation X≠Y≠ . . . ≠Z is assumed to express the fact that X, Y, . . . , Z are all mutually different. Also, it is assumed that b1, b2, b3, and b4 are integers (where b1≠b2≠b3≠b4). The parity check polynomial of Math. 1-1 is termed check equation #1, and a sub-matrix based on the parity check polynomial of Math. 1-1 is designated first sub-matrix H1.

In Math. 1-2, it is assumed that A1, A2, A3, and A4 are integers (where A1≠A2≠A3≠A4). Also, it is assumed that B1, B2, B3, and B4 are integers (where B1≠B2≠B3≠B4). A parity check polynomial of Math. 1-2 is termed check equation #2, and a sub-matrix based on the parity check polynomial of Math. 1-2 is designated second sub-matrix H₂.

In Math. 1-3, it is assumed that α1, α2, α3, and α4 are integers (where α1≠α2≠α3≠α4). Also, it is assumed that β1, β2, β3, and β4 are integers (where β1≠β2≠β3≠β4). A parity check polynomial of Math. 1-3 is termed check equation #3, and a sub-matrix based on the parity check polynomial of Math. 1-3 is designated third sub-matrix H2.

In Math. 1-4, it is assumed that E1, E2, E3, and E4 are integers (where E1≠E2≠E3≠E4). Also, it is assumed that F1, F2, F3, and F4 are integers (where F1≠F2≠F3≠F4). A parity check polynomial of Math. 1-4 is termed check equation #4, and a sub-matrix based on the parity check polynomial of Math. 1-4 is designated fourth sub-matrix H2.

Next, consider an LDPC-CC having a time-varying period of four that generates a check matrix as shown in FIG. 3 from first sub-matrix H₁, second sub-matrix H₂, third sub-matrix H₃, and fourth sub-matrix H₄.

When k is designated as a remainder after dividing the values of combinations of orders of X(D) and P(D), (a1, a2, a3, a4), (b1, b2, b3, b4), (A1, A2, A3, A4), (B1, B2, B3, B4), (α1, α2, α3, α4), (β1, β2, β3, β4), (E1, E2, E3, E4) and (F1, F2, F3, F4), in Math. 1-1 through 1-4 by four, provision is made for one each of remainders 0, 1, 2, and 3 to be included in four-coefficient sets represented as shown above (for example, (a1, a2, a3, a4)), and to hold true for all the above four-coefficient sets.

For example, if orders (a1, a2, a3, a4) of X(D) of check equation #1 are set as (a1, a2, a3, a4)=(8, 7, 6, 5), remainders k after dividing orders (a1, a2, a3, a4) by four are (0, 3, 2, 1), and one each of 0, 1, 2 and 3 are included in the four-coefficient set as remainders k. Similarly, if orders (b1, b2, b3, b4) of P(D) of check equation #1 are set as (b1, b2, b3, b4)=(4, 3, 2, 1), remainders k after dividing orders (b1, b2, b3, b4) by four are (0, 3, 2, 1), and one each of 0, 1, 2 and 3 are included in the four-coefficient set as remainders k. It is assumed that the above condition about remainders also holds true for the four-coefficient sets of X(D) and P(D) of the other parity check equations (check equation #2, check equation #3, and check equation #4).

By this means, the column weight of parity check matrix H configured from Math. 1-1 through 1-4 becomes four for all columns, which enables a regular LDPC code to be formed. Here, a regular LDPC code is an LDPC code that is defined by a parity check matrix for which each column weight is equally fixed, and is characterized by the fact that its characteristics are stable and an error floor is unlikely to occur. In particular, since the characteristics are good when the column weight is four, an LDPC-CC offering good reception performance can be achieved by generating an LDPC-CC as described above.

Table 1 shows examples of LDPC-CCs (LDPC-CCs #1 to #3) having a time-varying period of four and a coding rate of ½ for which the above condition about remainders holds true. In Table 1, LDPC-CCs having a time-varying period of four are defined by four parity check polynomials: check polynomial #1, check polynomial #2, check polynomial #3, and check polynomial #4.

TABLE 1 Code Parity check polynomial LDPC-CC #1 having a Check polynomial #1: (D⁴⁵⁸ + D⁴³⁵ + D³⁴¹ + 1)X(D) + (D⁵⁹⁸ + D³⁷³ + D⁶⁷ + 1)P(D) = 0 time-varying period of four and Check polynomial #2: (D²⁸⁷ + D²¹³ + D¹³⁰ + 1)X(D) + (D⁵⁴⁵ + D⁵⁴² + D¹⁰³ + 1)P(D) = 0 a coding rate of ½ Check polynomial #3: (D⁵⁵⁷ + D⁴⁹⁵ + D³²⁶ + 1)X(D) + (D⁵⁶¹ + D⁵⁰² + D³⁵¹ + 1)P(D) = 0 Check polynomial #4: (D⁴²⁶ + D³²⁹ + D⁹⁹ + 1)X(D) + (D³²¹ + D⁵⁵ + D⁴² + 1)P(D) = 0 LDPC-CC #2 having a Check polynomial #1: (D⁵⁰³ + D⁴⁵⁴ + D⁴⁹ + 1)X(D) + (D⁵⁶⁹ + D⁴⁶⁷ + D⁴⁰² + 1)P(D) = 0 time-varying period of four and Check polynomial #2: (D⁵¹⁸ + D⁴⁷³ + D²⁰³ + 1)X(D) + (D⁵⁹⁸ + D⁴⁹⁹ + D¹⁴⁵ + 1)P(D) = 0 a coding rate of ½ Check polynomial #3: (D⁴⁰³ + D³⁹⁷ + D⁶² + 1)X(D) + (D²⁹⁴ + D²⁶⁷ + D⁶⁹ + 1)P(D) = 0 Check polynomial #4: (D⁴⁸³ + D³⁸⁵ + D⁹⁴ + 1)X(D) + (D⁴²⁶ + D⁴¹⁵ + D⁴¹³ + 1)P(D) = 0 LDPC-CC #3 having a Check polynomial #1: (D⁴⁵⁴ + D⁴⁴⁷ + D¹⁷ + 1)X(D) + (D⁴⁹⁴ + D²³⁷ + D⁷ + 1)P(D) = 0 time-varying period of four and Check polynomial #2: (D⁵⁸³ + D⁵⁴⁵ + D⁵⁰⁶ + 1)X(D) + (D³²⁵ + D⁷¹ + D⁶⁶ + 1)P(D) = 0 a coding rate of ½ Check polynomial #3: (D⁴³⁰ + D⁴²⁵ + D⁴⁰⁷ + 1)X(D) + (D⁵⁸² + D⁴⁷ + D⁴⁵ + 1)P(D) = 0 Check polynomial #4: (D⁴³⁴ + D³⁵³ + D¹²⁷ + 1)X(D) + (D³⁴⁵ + D²⁰⁷ + D³⁸ + 1)P(D) = 0

A case with a coding rate of ½ has been described above as an example, but even when the coding rate is (n−1)/n, if the above condition about remainders also holds true for four coefficient sets of information X₁(D), X₂(D), . . . , X_(n−1)(D), respectively, the code is still a regular LDPC code and good receiving quality can be achieved.

In the case of a time-varying period of two, also, it has been confirmed that a code with good characteristics can be found if the above condition about remainders is applied. An LDPC-CC having a time-varying period of two with good characteristics is described below. A case in which the coding rate is ½ is described below as an example.

Consider Math. 2-1 and 2-2 as parity check polynomials of an LDPC-CC having a time-varying period of two. Here, X(D) is a polynomial representation of data (information) and P(D) is a parity polynomial representation. In Math. 2-1 and 2-2, parity check polynomials have been assumed in which there are four terms in X(D) and P(D), respectively, the reason being that four terms are desirable from the standpoint of achieving good received quality.

[Math. 2]

(D ^(a1) +D ^(a2) +D ^(a3) +D ^(a4))X(D)+(D ^(b1) +D ^(b2) +D ^(b3) +D ^(b4))P(D)=0  (Math. 2-1)

(D ^(A1) +D ^(A2) +D ^(A3) +D ^(A4))X(D)+(D ^(B1) +D ^(B2) +D ^(B3) +D ^(B4))P(D)=0  (Math. 2-2)

In Math. 2-1, it is assumed that a1, a2, a3, and a4 are integers (where a1≠a2≠a3≠a4). Also, it is assumed that b1, b2, b3, and b4 are integers (where b1≠b2≠b3≠b4). A parity check polynomial of Math. 2-1 is termed check equation #1, and a sub-matrix based on the parity check polynomial of Math. 2-1 is designated first sub-matrix H₁.

In Math. 2-2, it is assumed that A1, A2, A3, and A4 are integers (where A1≠A2≠A3≠A4). Also, it is assumed that B1, B2, B3, and B4 are integers (where B1 #B2: B3 #B4). A parity check polynomial of Math. 2-2 is termed check equation #2, and a sub-matrix based on the parity check polynomial of Math. 2-2 is designated second sub-matrix H₂.

Next, consider an LDPC-CC having a time-varying period of two generated from first sub-matrix H₁ and second sub-matrix H₂.

When k is designated as a remainder after dividing the values of combinations of orders of X(D) and P(D), (a1, a2, a3, a4), (b1, b2, b3, b4), (A1, A2, A3, A4), (B1, B2, B3, B4), in Math. 2-1 and 2-2 by four, provision is made for one each of remainders 0, 1, 2, and 3 to be included in four-coefficient sets represented as shown above (for example, (a1, a2, a3, a4)), and to hold true for all the above four-coefficient sets.

For example, if orders (a1, a2, a3, a4) of X(D) of check equation #1 are set as (a1, a2, a3, a4)=(8, 7, 6, 5), remainders k after dividing orders (a1, a2, a3, a4) by four are (0, 3, 2, 1), and one each of 0, 1, 2 and 3 are included in the four-coefficient set as remainders k. Similarly, if orders (b1, b2, b3, b4) of P(D) of check equation #1 are set as (b1, b2, b3, b4)=(4, 3, 2, 1), remainders k after dividing orders (b1, b2, b3, b4) by four are (0, 3, 2, 1), and one each of 0, 1, 2 and 3 are included in the four-coefficient set as remainders k. It is assumed that the above condition about remainders also holds true for the four-coefficient sets of X(D) and P(D) of check equation #2.

By this means, the column weight of parity check matrix H configured from Math. 2-1 and 2-4 becomes four for all columns, which enables a regular LDPC code to be formed. Here, a regular LDPC code is an LDPC code that is defined by a parity check matrix for which each column weight is equally fixed, and is characterized by the fact that its characteristics are stable and an error floor is unlikely to occur. In particular, since the characteristics are good when the column weight is eight, an LDPC-CC enabling reception performance to be further improved can be achieved by generating an LDPC-CC as described above.

Table 2 shows examples of LDPC-CCs (LDPC-CCs #1 and #2) having a time-varying period of two and a coding rate of ½ for which the above condition about remainders holds true. In Table 2, LDPC-CCs having a time-varying period of two are defined by two parity check polynomials: check polynomial #1 and check polynomial #2.

TABLE 2 Code Parity check polynomial LDPC-CC #1 having a Check polynomial #1: (D⁵⁵¹ + D⁴⁶⁵ + D⁹⁸ + 1)X(D) + (D⁴⁰⁷ + D³⁸⁶ + D³⁷³ + 1)P(D) = 0 time-varying period of two Check polynomial #2: (D⁴⁴³ + D⁴³³ + D⁵⁴ + 1)X(D) + (D⁵⁵⁹ + D⁵⁵⁷ + D⁵⁴⁶ + 1)P(D) = 0 and a coding rate of ½ LDPC-CC #2 having a Check polynomial #1: (D²⁶⁵ + D¹⁹⁰ + D⁹⁹ + 1)X(D) + (D²⁹⁵ + D²⁴⁶ + D⁶⁹ + 1)P(D) = 0 time-varying period of two Check polynomial #2: (D²⁷⁵ + D²²⁶ + D²¹³ + 1)X(D) + (D²⁹⁸ + D¹⁴⁷ + D⁴⁵ + 1)P(D) = 0 and a coding rate of ½

In the case of a time-varying period of three, also, it has been confirmed that a code with good characteristics can be found if the above condition about remainders is applied. An LDPC-CC having a time-varying period of three with good characteristics is described below. A case in which the coding rate is ½ is described below as an example.

Consider Math. 1-1 through 1-3 as parity check polynomials of an LDPC-CC having a time-varying period of three. Here, X(D) is a polynomial representation of data (information) and P(D) is a parity polynomial representation. Here, in Math. 3-1 to 3-3, parity check polynomials are assumed such that there are three terms in X(D) and P(D), respectively.

[Math. 3]

(D ^(a1) +D ^(a2) +D ^(a3))X(D)+(D ^(b1) +D ^(b2) +D ^(b3))P(D)=0  (Math. 3-1)

(D ^(A1) +D ^(A2) +D ^(A3))X(D)+(D ^(B1) +D ^(B2) +D ^(B3))P(D)=0  (Math. 3-2)

(D ^(α1) +D ^(α2) +D ^(α3))X(D)+(D ^(β1) +D ^(β2) +D ^(β3))P(D)=0  (Math. 3-3)

In Math, 3-1, it is assumed that a1, a2, and a3, are integers (where a1≠a2≠a3). Also, it is assumed that b1, b2 and b3 are integers (where b1≠b2≠b3). A parity check polynomial of Math. 3-1 is termed check equation #1, and a sub-matrix based on the parity check polynomial of Math. 3-1 is designated first sub-matrix H₁.

In Math. 3-2, it is assumed that A1, A2 and A3 are integers (where A1≠A2≠A3). Also, it is assumed that B1, B2 and B3 are integers (where B1≠B2≠B3). A parity check polynomial of Math. 3-2 is termed check equation #2, and a sub-matrix based on the parity check polynomial of Math. 3-2 is designated second sub-matrix H₂.

In Math. 1-3, it is assumed that α1, α2 and α3 are integers (where α1≠α2≠α3). Also, it is assumed that β1, β2 and β3 are integers (where β1≠β2≠β3). A parity check polynomial of Math. 3-3 is termed check equation #3, and a sub-matrix based on the parity check polynomial of Math. 3-3 is designated third sub-matrix H₃.

Next, consider an LDPC-CC having a time-varying period of three generated from first sub-matrix H₁, second sub-matrix H₂ and third sub-matrix H₃.

Here, when k is designated as a remainder after dividing the values of combinations of orders of X(D) and P(D), (a1, a2, a3), (b1, b2, b3), (A1, A2, A3), (B1, B2, B3), (α1, α2, α3) and (β1, β2, β3), in Math. 3-1 through 3-3 by three, provision is made for one each of remainders 0, 1, and 2 to be included in three-coefficient sets represented as shown above (for example, (a1, a2, a3)), and to hold true for all the above three-coefficient sets.

For example, if orders (a1, a2, a3, a4) of X(D) of check equation #1 are set as (a1, a2, a3)=(6, 5, 4), remainders k after dividing orders (a1, a2, a3) by three are (0, 2, 1), and one each of 0, 1, 2 are included in the three-coefficient set as remainders k. Similarly, if orders (b1, b2, b3, b4) of P(D) of check equation #1 are set as (b1, b2, b3)=(3, 2, 1), remainders k after dividing orders (b1, b2, b3) by three are (0, 2, 1), and one each of 0, 1, 2 are included in the three-coefficient set as remainders k. It is assumed that the above condition about remainders also holds true for the three-coefficient sets of X(D) and P(D) of check equation #2 and check equation #3.

By generating an LDPC-CC as above, it is possible to generate a regular LDPC-CC code in which the row weight is equal in all rows and the column weight is equal in all columns, without some exceptions. Here, exceptions refer to part in the beginning of a parity check matrix and part in the end of the parity check matrix, where the row weights and columns weights are not the same as row weights and column weights of the other part. Furthermore, when BP decoding is performed, belief in check equation #2 and belief in check equation #3 are propagated accurately to check equation #1, belief in check equation #1 and belief in check equation #3 are propagated accurately to check equation #2, and belief in check equation #1 and belief in check equation #2 are propagated accurately to check equation #3. Consequently, an LDPC-CC with better received quality can be achieved. This is because, when considered in column units, positions at which ones are present are arranged so as to propagate belief accurately, as described above.

The above belief propagation is described below with reference to the accompanying drawings. FIG. 4A shows parity check polynomials of an LDPC-CC having a time-varying period of three and the configuration of parity check matrix H of this LDPC-CC.

Check equation #1 illustrates a case in which (a1, a2, a3)=(2, 1, 0) and (b1, b2, b3)=(2, 1, 0) in a parity check polynomial of Math. 3-1, and remainders after dividing the coefficients by three are as follows: (a1%3, a2%3, a3%3)=(2, 1, 0) and (b1%3, b2%3, b3%3)=(2, 1, 0), where Z%3 represents a remainder after dividing Z by three.

Check equation #2 illustrates a case in which (A1, A2, A3)=(5, 1, 0) and (B1, B2, B3)=(5, 1, 0) in a parity check polynomial of Math. 3-2, and remainders after dividing the coefficients by three are as follows: (A1%3, A2%3, A3%3)=(2, 1, 0) and (B1%3, B2%3, B3%3)=(2, 1, 0)

Check equation #3 illustrates a case in which (α1, α2, α3)=(4, 2, 0) and (β1, β2, β3)=(4, 2, 0) in a parity check polynomial of Math. 3-3, and remainders after dividing the coefficients by three are as follows: (α1%3, α2%3, α3%3)=(1, 2, 0) and (β1%3, β2%3, β3%3)=(1, 2, 0).

Therefore, the example of LDPC-CC of a time-varying period of three shown in FIG. 4A satisfies the above condition about remainders, that is, a condition that

(a1%3, a2%3, a3%3),

(b1%3, b2%3, b3%3),

(A1%3, A2%3, A3%3),

(B1%3, B2%3, B3%3),

(α1%3, α2%3, α3%3), and

(β1%3, β2%3, β3%3) are any of the following: (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), and (2, 1, 0).

Returning to FIG. 4A again, belief propagation will now be explained. By column computation of column 6506 in BP decoding, for the one of area 6201 of check equation #1, belief is propagated from the one of area 6504 of check equation #2 and from the one of area 6505 of check equation #3. As described above, the one in area 6201 of check equation #1 is a coefficient for which a remainder after division by three is zero (a3%3=0 (a3=0) or b3%3=0 (b3=0)). Also, the one in area 6504 of check equation #2 is a coefficient for which a remainder after division by three is one (A2%3=1 (A2=1) or B2%3=1 (B2=1)). Furthermore, the one in area 6505 of check equation #3 is a coefficient for which a remainder after division by three is two (α2%3=2 (α2=2) or β2%3=2 (β2=2)).

Thus, for the one in area 6201 for which a remainder is zero in the coefficients of check equation #1, in column computation of column 6506 in BP decoding, belief is propagated from the one in area 6504 for which a remainder is one in the coefficients of check equation #2 and from the one in area 6505 for which a remainder is two in the coefficients of check equation #3.

Similarly, for the one in area 6202 for which a remainder is one in the coefficients of check equation #1, in column computation of column 6509 in BP decoding, belief is propagated from the one in area 6507 for which a remainder is two in the coefficients of check equation #2 and from the one in area 6508 for which a remainder is zero in the coefficients of check equation #3.

Similarly, for the one in area 6203 for which a remainder is two in the coefficients of check equation #1, in column computation of column 6512 in BP decoding, belief is propagated from the one in area 6510 for which a remainder is zero in the coefficients of check equation #2 and from the one in area 6511 for which a remainder is one in the coefficients of check equation #3.

A supplementary explanation of belief propagation is now given with reference to FIG. 4B. FIG. 4B shows the belief propagation relationship of terms relating to X(D) of check equation #1 through check equation #3 in FIG. 4A. Check equation #1 through check equation #3 in FIG. 4A illustrate cases in which (a1, a2, a3)=(2, 1, 0), (A1, A2, A3)=(5, 1, 0), and (α1, α2, α3)=(4, 2, 0), in terms relating to X(D) in Math. 3-1 through 3-3.

In FIG. 4B, terms (a3, A3, a3) inside squares indicate coefficients for which a remainder after division by three is zero, terms (a2, A2, a2) inside circles indicate coefficients for which a remainder after division by three is one, and terms (a1, A1, α1) inside lozenges indicate coefficients for which a remainder after division by three is two.

As can be seen from FIG. 4B, for a1 of check equation #1, belief is propagated from A3 of check equation #2 and from α1 of check equation #3 for which remainders after division by three differ; for a2 of check equation #1, belief is propagated from A1 of check equation #2 and from α3 of check equation #3 for which remainders after division by three differ; and, for a3 of check equation #1, belief is propagated from A2 of check equation #2 and from α2 of check equation #3 for which remainders after division by three differ. While FIG. 4B shows the belief propagation relationship of terms relating to X(D) of check equation #1 to check equation #3, the same applies to terms relating to P(D).

Thus, for check equation #1 belief is propagated from coefficients for which remainders after division by three are zero, one, and two among coefficients of check equation #2. That is to say, for check equation #1, belief is propagated from coefficients for which remainders after division by three are all different among coefficients of check equation #2. Therefore, beliefs with low correlation are all propagated to check equation #1.

Similarly, for check equation #2, belief is propagated from coefficients for which remainders after division by three are zero, one, and two among coefficients of check equation #1. That is to say, for check equation #2, belief is propagated from coefficients for which remainders after division by three are all different among coefficients of check equation #1. Also, for check equation #2, belief is propagated from coefficients for which remainders after division by three are zero, one, and two among coefficients of check equation #3. That is to say, for check equation #2, belief is propagated from coefficients for which remainders after division by three are all different among coefficients of check equation #3.

Similarly, for check equation #3, belief is propagated from coefficients for which remainders after division by three are zero, one, and two among coefficients of check equation #1. That is to say, for check equation #3, belief is propagated from coefficients for which remainders after division by three are all different among coefficients of check equation #1. Also, for check equation #3, belief is propagated from coefficients for which remainders after division by three are zero, one, and two among coefficients of check equation #2. That is to say, for check equation #3, belief is propagated from coefficients for which remainders after division by three are all different among coefficients of check equation #2.

By providing for the orders of parity check polynomials of Math. 3-1 through Math. 3-3 to satisfy the above condition about remainders in this way, belief is necessarily propagated in all column computations. Accordingly, it is possible to perform belief propagation efficiently in all check equations and further increase error correction capability.

A case in which the coding rate is ½ has been described above for an LDPC-CC having a time-varying period of three, but the coding rate is not limited to ½. A regular LDPC code is also formed and good received quality can be achieved when the coding rate is (n−1)/n (where n is an integer equal to or greater than two) if the above condition about remainders holds true for three-coefficient sets in information X₁(D), X₂(D), . . . , X_(n−1)(D).

A case in which the coding rate is (n−1)/n (where n is an integer equal to or greater than two) is described below.

Consider Math. 4-1 through Math. 4-3 as parity check polynomials of an LDPC-CC having a time-varying period of three. Here, X₁(D), X₂(D), . . . , X_(n−1)(D) are polynomial representations of data (information) X₁, X₂, . . . , X_(n−1) and P(D) is a polynomial representation of parity. Here, in Math. 4-1 through Math. 4-3, parity check polynomials are assumed such that there are three terms in X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D), respectively.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 4} \right\rbrack} & \; \\ {{{\left( {D^{{a\; 1},1} + D^{{a\; 1},2} + D^{{a\; 1},3}} \right){X_{1}(D)}} + {\left( {D^{{a\; 2},1} + D^{{a\; 2},2} + D^{{a\; 2},3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{{an} - 1},1} + D^{{{an} - 1},2} + D^{{{an} - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{b\; 1} + D^{b\; 2} + D^{b\; 3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 4}\text{-}1} \right) \\ {{{\left( {D^{{A\; 1},1} + D^{{A\; 1},2} + D^{{A\; 1},3}} \right){X_{1}(D)}} + {\left( {D^{{A\; 2},1} + D^{{A\; 2},2} + D^{{A\; 2},3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{{An} - 1},1} + D^{{{An} - 1},2} + D^{{{An} - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{B\; 1} + D^{B\; 2} + D^{B\; 3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 4}\text{-}2} \right) \\ {{{\left( {D^{{\alpha \; 1},1} + D^{{\alpha \; 1},2} + D^{{\alpha \; 1},3}} \right){X_{1}(D)}} + {\left( {D^{{\alpha \; 2},1} + D^{{\alpha \; 2},2} + D^{{\alpha \; 2},3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{{\alpha \; n} - 1},1} + D^{{{\alpha \; n} - 1},2} + D^{{{\alpha \; n} - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{\beta \; 1} + D^{\beta \; 2} + D^{\beta \; 3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 4}\text{-}3} \right) \end{matrix}$

In Math. 4-1, it is assumed that a_(i,1), a_(i,2), and a_(i,3) (where i=1, 2, . . . , n−1) are integers (where a_(i,1)≠a_(i,2)≠a_(i,3)). Also, it is assumed that b1, b2 and b3 are integers (where b1≠b2≠b3). A parity check polynomial of Math. 4-1 is termed check equation #1, and a sub-matrix based on the parity check polynomial of Math. 3-3 is designated first sub-matrix H₁.

In Math. 4-2, it is assumed that A_(i,1), A_(i,2), and A_(i,3) (where i=1, 2, . . . , n−1) are integers (where A_(i,1)≠A_(i,2)≠A_(i,3)). Also, it is assumed that B1, B2 and B3 are integers (where B1≠B2≠B3). A parity check polynomial of Math. 4-2 is termed check equation #2, and a sub-matrix based on the parity check polynomial of Math. 4-2 is designated second sub-matrix H₂.

Also, in Math. 4-3, it is assumed that α_(i,1), α_(i,2), and α_(i,3) (where i=1, 2, . . . , n−1) are integers (where α_(i,1)≠α_(i,2)≠α_(i,3)). Also, it is assumed that β1, β2 and β3 are integers (where β1≠β2≠β3). A parity check polynomial of Math. 4-3 is termed check equation #3, and a sub-matrix based on the parity check polynomial of Math. 4-3 is designated third sub-matrix H₃.

Next, an LDPC-CC having a time-varying period of three generated from first sub-matrix H₁, second sub-matrix H₂, and third sub-matrix H₃ is considered.

At this time, if k is designated as a remainder after dividing the values of combinations of orders of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D),

(a_(1,1), a_(1,2), a_(1,3)),

(a_(2,1), a_(2,2), a_(2,3)), . . . ,

(a_(n−1), a_(n−1,2), a_(n−1,3)),

(b1, b2, b3),

(A_(1,1), A_(1,2), A_(1,3)),

(A_(2,1), A_(2,2), A_(2,3)), . . . ,

(A_(n−1,1), A_(n−1,2), A_(n−1,3)),

(B1, B2, B3),

(α_(1,1), α_(1,2), α_(1,3)),

(α_(2,1), α_(2,2), α_(2,3)), . . . ,

(α_(n−1,1), α_(n−1,2), α_(n−1,3)), and

(β1, β2, β3),

in Math. 4-1 through Math. 4-3 by three, provision is made for one each of remainders zero, one, and two to be included in three-coefficient sets represented as shown above (for example, (a_(1,1), a_(1,2), a_(1,3))), and to hold true for all the above three-coefficient sets.

That is to say, provision is made for

(a_(1, 1)%3, a_(1, 2)%3, a_(1, 3)%3), (a_(2, 1)%3, a_(2, 2)%3, a_(2, 3)%3), …  , (a_(n − 1, 1)%3, a_(n − 1, 2)%3, a_(n − 1, 3)%3), (b 1%3, b 2%3, b 3%3), (A_(1, 1)%3, A_(1, 2)%3, A_(1, 3)%3), (A_(2, 1)%3, A_(2, 2)%3, A_(2, 3)%3), …  , (A_(n − 1, 1)%3, A_(n − 1, 2)%3, A_(n − 1, 3)%3), (B 1%3, B 2%3, B 3%3), (α_(1, 1)%3, α_(1, 2)%3, α_(1, 3)%3), (α_(2, 1)%3, α_(2, 2)%3, α_(2, 3)%3), …  , (α_(n − 1, 1)%3, α_(n − 1, 2)%3, α_(n − 1, 3)%3), and  (β 1%3, β 2%3, β 3%3)  

to be any of the following: (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1) and (2, 1, 0).

Generating an LDPC-CC in this way enables a regular LDPC-CC code to be generated. Furthermore, when BP decoding is performed, belief in check equation #2 and belief in check equation #3 are propagated accurately to check equation #1, belief in check equation #1 and belief in check equation #3 are propagated accurately to check equation #2, and belief in check equation #1 and belief in check equation #2 are propagated accurately to check equation #3. Consequently, an LDPC-CC with better received quality can be achieved in the same way as in the case of a coding rate of ½.

Table 3 shows examples of LDPC-CCs (LDPC-CCs #1, #2, #3, #4, #5 and #6) having a time-varying period of three and a coding rate of ½ for which the above remainder-related condition holds true. In table 3, LDPC-CCs having a time-varying period of three are defined by three parity check polynomials: check (polynomial) equation #1, check (polynomial) equation #2 and check (polynomial) equation #3.

TABLE 3 Code Parity check polynomial LDPC-CC #1 having Check polynomial #1: (D⁴²⁸ + D³²⁵ + 1)X(D) + (D⁵³⁸ + D³³² + 1)P(D) = 0 a time-varying Check polynomial #2: (D⁵³⁸ + D³⁸⁰ + 1)X(D) + (D⁴⁴⁹ + D¹ + 1)P(D) = 0 period of three and a Check polynomial #3: (D⁵⁸³ + D¹⁷⁰ + 1)X(D) + (D³⁶⁴ + D²⁴² + 1)P(D) = 0 coding rate of ½ LDPC-CC #2 having Check polynomial #1: (D⁵⁶² + D⁷¹ + 1)X(D) + (D³²⁵ + D¹⁵⁵ + 1)P(D) = 0 a time-varying Check polynomial #2: D²¹⁵ + D¹⁰⁶ + 1)X(D) + (D⁵⁶⁶ + D¹⁴² + 1)P(D) = 0 period of three and a Check polynomial #3: (D⁵⁹⁰ + D⁵⁵⁹ + 1)X(D) + (D¹²⁷ + D¹¹⁰ + 1)P(D) = 0 coding rate of ½ LDPC-CC #3 having Check polynomial #1: (D¹¹² + D⁵³ + 1)X(D) + (D¹¹⁰ + D⁸⁸ + 1)P(D) = 0 a time-varying period Check polynomial #2: (D¹⁰³ + D⁴⁷ + 1)X(D) + (D⁸⁵ + D⁸³ + 1)P(D) = 0 of three and a coding Check polynomial #3: (D¹⁴⁸ + D⁸⁹ + 1)X(D) + (D¹⁴⁶ + D⁴⁹ + 1)P(D) = 0 rate of ½ LDPC-CC #4 having Check polynomial #1: (D³⁵⁰ + D³²² + 1)X(D) + (D⁴⁴⁸ + D³³⁸ + 1)P(D) = 0 a time-varying period Check polynomial #2: (D⁵²⁹ + D³² + 1)X(D) + (D²³⁸ + D¹⁸⁸ + 1)P(D) = 0 of three and a coding Check polynomial #3: (D⁵⁹² + D⁵⁷² + 1)X(D) + (D⁵⁷⁸ + D⁵⁶⁸ + 1)P(D) = 0 rate of ½ LDPC-CC #5 having Check polynomial #1: (D⁴¹⁰ + D⁸² + 1)X(D) + (D⁸³⁵ + D⁴⁷ + 1)P(D) = 0 a time-varying period Check polynomial #2: (D⁸⁷⁵ + D⁷⁹⁶ + 1)X(D) + (D⁹⁶² + D⁸⁷¹ + 1)P(D) = 0 of three and a coding Check polynomial #3: (D⁶⁰⁵ + D⁵⁴⁷ + 1)X(D) + (D⁹⁵⁰ + D⁴³⁹ + 1)P(D) = 0 rate of ½ LDPC-CC #6 having Check polynomial #1: (D³⁷³ + D⁵⁶ + 1)X(D) + (D⁴⁰⁶ + D²¹⁸ + 1)P(D) = 0 a time-varying period Check polynomial #2: (D⁴⁵⁷ + D¹⁹⁷ + 1)X(D) + (D⁴⁹¹ + D²² + 1)P(D) = 0 of three and a coding Check polynomial #3: (D⁴⁸⁵ + D⁷⁰ + 1)X(D) + (D²³⁶ + D¹⁸¹ + 1)P(D) = 0 rate of ½

Furthermore, Table 4 shows examples of LDPC-CCs having a time-varying period of three and coding rates of ½, ⅔, ¾, and ⅚, and Table 5 shows examples of LDPC-CCs having a time-varying period of three and coding rates of ½, ⅔, ¾, and ⅘.

TABLE 4 Code Parity check polynomial LDPC-CC having a Check polynomial #1: (D³⁷³ + D⁵⁶ + 1)X₁(D) + (D⁴⁰⁶ + D²¹⁸ + 1)P(D) = 0 time-varying period of Check polynomial #2: (D⁴⁵⁷ + D¹⁹⁷ + 1)X₁(D) + (D⁴⁹¹ + D²² + 1)P(D) = 0 three and a coding rate Check polynomial #3: (D⁴⁸⁵ + D⁷⁰ + 1)X₁(D) + (D²³⁶ + D¹⁸¹ + 1)P(D) = 0 of ½ LDPC-CC having a Check polynomial #1: time-varying period of (D³⁷³ + D⁵⁶ + 1)X₁(D) + (D⁸⁶ + D⁴ + 1)X₂(D) + (D⁴⁰⁶ + D²¹⁸ + 1)P(D) = 0 three and a coding rate Check polynomial #2: of ⅔ (D⁴⁵⁷ + D¹⁹⁷ + 1)X₁(D) + (D³⁶⁸ + D²⁹⁵ + 1)X₂(D) + (D⁴⁹¹ + D²² + 1)P(D) = 0 Check polynomial #3: (D⁴⁸⁵ + D⁷⁰ + 1)X₁(D) + (D⁴⁷⁵ + D³⁹⁸ + 1)X₂(D) + (D²³⁶ + D¹⁸¹ + 1)P(D) = 0 LDPC-CC having a Check polynomial #1: (D³⁷³ + D⁵⁶ + 1)X₁(D) + (D⁸⁶ + D⁴ + 1)X₂(D) + time-varying period of (D³⁸⁸ + D¹³⁴ + 1)X₃(D) + (D⁴⁰⁶ + D²¹⁸ + 1)P(D) = 0 three and a coding rate Check polynomial #2: (D⁴⁵⁷ + D¹⁹⁷ + 1)X₁(D) + (D³⁶⁸ + D²⁹⁵ + 1)X₂(D) + of ¾ (D¹⁵⁵ + D¹³⁶ + 1)X₃(D) + (D⁴⁹¹ + D²² + 1)P(D) = 0 Check polynomial #3: (D⁴⁸⁵ + D⁷⁰ + 1)X₁(D) + (D⁴⁷⁵ + D³⁹⁸ + 1)X₂(D) + (D⁴⁹³ + D⁷⁷ + 1)X₃(D) + (D²³⁶ + D¹⁸¹ + 1)P(D) = 0 LDPC-CC having a Check polynomial #1: time-varying period of (D³⁷³ + D⁵⁶ + 1)X₁(D) + (D⁸⁶ + D⁴ + 1)X₂(D) + (D³⁸⁸ + D¹³⁴ + 1)X₃(D) + three and a coding rate (D²⁵⁰ + D¹⁹⁷ + 1)X₄(D) + (D²⁹⁵ + D¹¹³ + 1)X₅(D) + (D⁴⁰⁶ + D²¹⁸ + 1)P(D) = 0 of ⅚ Check polynomial #2: (D⁴⁵⁷ + D¹⁹⁷ + 1)X₁(D) + (D³⁶⁸ + D²⁹⁵ + 1)X₂(D) + (D¹⁵⁵ + D¹³⁶ + 1)X₃(D) + (D²²⁰ + D¹⁴⁶ + 1)X₄(D) + (D³¹¹ + D¹¹⁵ + 1)X₅(D) + (D⁴⁹¹ + D²² + 1)P(D) = 0 Check polynomial #3: (D⁴⁸⁵ + D⁷⁰ + 1)X₁(D) + (D⁴⁷⁵ + D³⁹⁸ + 1)X₂(D) + (D⁴⁹³ + D⁷⁷ + 1)X₃(D) + (D⁴⁹⁰ + D²³⁹ + 1)X₄(D) + (D³⁹⁴ + D²⁷⁸ + 1)X₅(D) + (D²³⁶ + D¹⁸¹ + 1)P(D) = 0

TABLE 5 Code Parity check polynomial LDPC-CC having a Check polynomial #1: (D²⁶⁸ + D¹⁶⁴ + 1)X₁(D) + (D⁹² + D⁷ + 1)P(D) = 0 time-varying period Check polynomial #2: (D³⁷⁰ + D³¹⁷ + 1)X₁(D) + (D⁹⁵ + D²² + 1)P(D) = 0 of three and a coding Check polynomial #3: (D³⁴⁶ + D⁸⁶ + 1)X₁(D) + (D⁸⁸ + D²⁶ + 1)P(D) = 0 rate of ½ LDPC-CC having a Check polynomial #1: time-varying period (D²⁶⁸ + D¹⁶⁴ + 1)X₁(D) + (D³⁸⁵ + D²⁴² + 1)X₂(D) + (D⁹² + D⁷ + 1)P(D) = 0 of three and a coding Check polynomial #2: rate of ⅔ (D³⁷⁰ + D³¹⁷ + 1)X₁(D) + (D¹²⁵ + D¹⁰³ + 1)X₂(D) + (D⁹⁵ + D²² + 1)P(D) = 0 Check polynomial #3: (D³⁴⁶ + D⁸⁶ + 1)X₁(D) + (D³¹⁹ + D²⁹⁰ + 1)X₂(D) + (D⁸⁸ + D²⁶ + 1)P(D) = 0 LDPC-CC having a Check polynomial #1: (D²⁶⁸ + D¹⁶⁴ + 1)X₁(D) + (D³⁸⁵ + D²⁴² + 1)X₂(D) + time-varying period (D³⁴³ + D²⁸⁴ + 1)X₃(D) + (D⁹² + D⁷ + 1)P(D) = 0 of three and a coding Check polynomial #2: (D³⁷⁰ + D³¹⁷ + 1)X₁(D) + (D¹²⁵ + D¹⁰³ + 1)X₂(D) + rate of ¾ (D²⁵⁹ + D¹⁴ + 1)X₃(D) + (D⁹⁵ + D²² + 1)P(D) = 0 Check polynomial #3: (D³⁴⁶ + D⁸⁶ + 1)X₁(D) + (D³¹⁹ + D²⁹⁰ + 1)X₂(D) + (D¹⁴⁵ + D¹¹ + 1)X₃(D) + (D⁸⁸ + D²⁶ + 1)P(D) = 0 LDPC-CC having a Check polynomial #1: time-varying period (D²⁶⁸ + D¹⁶⁴ + 1)X₁(D) + (D³⁸⁵ + D²⁴² + 1)X₂(D) + of three and a coding (D³⁴³ + D²⁸⁴ + 1)X₃(D) + (D³¹⁰ + D¹¹³ + 1)X₄(D) + (D⁹² + D⁷ + 1)P(D) = 0 rate of ⅘ Check polynomial #2: (D³⁷⁰ + D³¹⁷ + 1)X₁(D) + (D¹²⁵ + D¹⁰³ + 1)X₂(D) + (D²⁵⁹ + D¹⁴ + 1)X₃(D) + (D³⁹⁴ + D¹⁸⁸ + 1)X₄(D) + (D⁹⁵ + D²² + 1)P(D) = 0 Check polynomial #3: (D³⁴⁶ + D⁸⁶ + 1)X₁(D) + (D³¹⁹ + D²⁹⁰ + 1)X₂(D) + (D¹⁴⁵ + D¹¹ + 1)X₃(D) + (D²³⁹ + D⁶⁷ + 1)X₄(D) + (D⁸⁸ + D²⁶ + 1)P(D) = 0

It has been confirmed that, as in the case of a time-varying period of three, a code with good characteristics can be found if the condition about remainders below is applied to an LDPC-CC having a time-varying period of a multiple of three (for example, 6, 9, 12, . . . ). An LDPC-CC having a time-varying period of a multiple of three with good characteristics is described below. The case of an LDPC-CC having a coding rate of ½ and a time-varying period of six is described below as an example.

Consider Math. 5-1 through Math. 5-6 as parity check polynomials of an LDPC-CC having a time-varying period of six

[Math. 5]

(D ^(a1,1) +D ^(a1,2) +D ^(a1,3))X(D)+(D ^(b1,1) +D ^(b1,2) +D ^(b1,3))P(D)=0  (Math. 5-1)

(D ^(a2,1) +D ^(a2,2) +D ^(a2,3))X(D)+(D ^(b2,1) +D ^(b2,2) +D ^(b2,3))P(D)=0  (Math. 5-2)

(D ^(a3,1) +D ^(a3,2) +D ^(a3,3))X(D)+(D ^(b3,1) +D ^(b3,2) +D ^(b3,3))P(D)=0  (Math. 5-3)

(D ^(a4,1) +D ^(a4,2) +D ^(a4,3))X(D)+(D ^(b4,1) +D ^(b4,2) +D ^(b4,3))P(D)=0  (Math. 5-4)

(D ^(a5,1) +D ^(a5,2) +D ^(a5,3))X(D)+(D ^(b5,1) +D ^(b5,2) +D ^(b5,3))P(D)=0  (Math. 5-5)

(D ^(a6,1) +D ^(a6,2) +D ^(a6,3))X(D)+(D ^(b6,1) +D ^(b6,2) +D ^(b6,3))P(D)=0  (Math. 5-6)

Here, X(D) is a polynomial representation of data (information) and P(D) is a parity polynomial representation. With an LDPC-CC having a time-varying period of six, if i%6=k (where k=0, 1, 2, 3, 4, 5) is assumed for parity Pi and information Xi at point in time i, a parity check polynomial of Math. 5-(k+1) holds true. For example, if i=1, i%6=1 (k=1), Math. 6 holds true.

[Math. 6]

(D ^(a2,1) +D ^(a2,2) +D ^(a2,3))X ₁(D)+(D ^(b2,1) +D ^(b2,2) +D ^(b2,3))P ₁=0  (Math. 6)

In Math. 5-1 through Math. 5-6, parity check polynomials are assumed such that there are three terms in X(D) and P(D), respectively.

In Math. 5-1, it is assumed that a1,1, a1,2, a1,3 are integers (where a1, 1≠a1, 2≠a1,3). Also, it is assumed that b1,1, b1,2, and b1,3 are integers (where b1, 1≠b1, 2≠b1,3). A parity check polynomial of Math. 5-1 is termed check equation #1, and a sub-matrix based on the parity check polynomial of Math. 5-1 is designated first sub-matrix H₁.

In Math. 5-2, it is assumed that a2,1, a2,2, and a2,3 are integers (where a2, 1 #a2, 2≠a2,3). Also, it is assumed that b2,1, b2,2, and b2,3 are integers (where b2, 1 #b2, 2: b2,3). A parity check polynomial of Math. 5-2 is termed check equation #2, and a sub-matrix based on the parity check polynomial of Math. 5-2 is designated second sub-matrix H₂.

In Math. 5-3, it is assumed that a3,1, a3,2, and a3,3 are integers (where a3,1≠a3,2≠a3,3). Also, it is assumed that b3,1, b3,2, and b3,3 are integers (where b3,1≠b3,2≠b3,3). A parity check polynomial of Math. 5-3 is termed check equation #3, and a sub-matrix based on the parity check polynomial of Math. 5-3 is designated third sub-matrix H₃.

In Math. 5-4, it is assumed that a4, 1, a4,2, and a4,3 are integers (where a4,1≠a4,2≠a4,3). Also, it is assumed that b4,1, b4,2, and b4,3 are integers (where b4,1≠b4,2≠b4,3). A parity check polynomial of Math. 5-4 is termed check equation #4, and a sub-matrix based on the parity check polynomial of Math. 5-4 is designated fourth sub-matrix H₄.

In Math. 5-5, it is assumed that a5,1, a5,2, and a5,3 are integers (where a5,1≠a5,2≠a5,3). Also, it is assumed that b5,1, b5,2, and b5,3 are integers (where b5,1≠b5,2≠b5,3). A parity check polynomial of Math. 5-5 is termed check equation #5, and a sub-matrix based on the parity check polynomial of Math. 5-5 is designated fifth sub-matrix Hs.

In Math. 5-6, it is assumed that a6,1, a6,2, and a6,3 are integers (where a6,1≠a6,2≠a6,3). Also, it is assumed that b6,1, b6,2, and b6,3 are integers (where b6,1≠b6,2≠b6,3). A parity check polynomial of Math. 5-6 is termed check equation #6, and a sub-matrix based on the parity check polynomial of Math. 5-6 is designated sixth sub-matrix H₆.

Next, an LDPC-CC having a time-varying period of six generated from first sub-matrix H₁, second sub-matrix H₂, third sub-matrix H₃, fourth sub-matrix H₄, fifth sub-matrix H₅ and sixth sub-matrix H₆ is considered.

At this time, if k is designated as a remainder after dividing the values of combinations of orders of X(D) and P(D),

(a1,1, a1,2, a1,3),

(b1,1, b1,2, b1,3),

(a2,1, a2,2, a2,3),

(b2,1, b2,2, b2,3),

(a3,1, a3,2, a3,3),

(b3,1, b3,2, b3,3),

(a4,1, a4,2, a4,3),

(b4,1, b4,2, b4,3),

(a5,1, a5,2, a5,3),

(b5,1, b5,2, b5,3),

(a6,1, a6,2, a6,3),

(b6,1, b6,2, b6,3) in Math. 5-1 through Math. 5-6 by three, provision is made for one each of remainders zero, one, and two to be included in three-coefficient sets represented as shown above (for example, (a1,1, a1,2, a1,3)), and to hold true for all the above three-coefficient sets. That is to say, provision is made for

(a1,1%3, a1,2%3, a1,3%3),

(b1,1%3, b1,2%3, b1,3%3),

(a2,1%3, a2,2%3, a2,3%3),

(b2,1%3, b2,2%3, b2,3%3),

(a3,1%3, a3,2%3, a3,3%3),

(b3,1%3, b3,2%3, b3,3%3),

(a4,1%3, a4,2%3, a4,3%3),

(b4,1%3, b4,2%3, b4,3%3),

(a5,1%3, a5,2%3, a5,3%3),

(b5,1%3, b5,2%3, b5,3%3),

(a6,1%3, a6,2%3, a6,3%3), and

(b6,1%3, b6,2%3, b6,3%3), to be any of the following: (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), and (2, 1, 0).

By generating an LDPC-CC in this way, if an edge is present when a Tanner graph is drawn for check equation #1, belief in check equation #2 or check equation #5 and belief in check equation #3 or check equation #6 are propagated accurately.

Also, if an edge is present when a Tanner graph is drawn for check equation #2, belief in check equation #1 or check equation #4 and belief in check equation #3 or check equation #6 are propagated accurately.

If an edge is present when a Tanner graph is drawn for check equation #3, belief in check equation #1 or check equation #4 and belief in check equation #2 or check equation #5 are propagated accurately. If an edge is present when a Tanner graph is drawn for check equation #4, belief in check equation #2 or check equation #5 and belief in check equation #3 or check equation #6 are propagated accurately.

If an edge is present when a Tanner graph is drawn for check equation #5, belief in check equation #1 or check equation #4 and belief in check equation #3 or check equation #6 are propagated accurately. If an edge is present when a Tanner graph is drawn for check equation #6, belief in check equation #1 or check equation #4 and belief in check equation #2 or check equation #5 are propagated accurately.

Consequently, an LDPC-CC having a time-varying period of six can maintain better error correction capability in the same way as when the time-varying period is three.

The above belief propagation is described below with reference to FIG. 4C. FIG. 4C shows the belief propagation relationship of terms relating to X(D) of check equation #1 through check equation #6. In FIG. 4C, a square indicates a coefficient for which a remainder after division by three in ax, y (where x=1, 2, 3, 4, 5, 6, and y=1, 2, 3) is zero.

A circle indicates a coefficient for which a remainder after division by three in ax, y (where x=1, 2, 3, 4, 5, 6, and y=1, 2, 3) is one. A lozenge indicates a coefficient for which a remainder after division by three in ax, y (where x=1, 2, 3, 4, 5, 6, and y=1, 2, 3) is two.

As can be seen from FIG. 4C, if an edge is present when a Tanner graph is drawn, for a1,1 of check equation #1, belief is propagated from check equation #2 or #5 and check equation #3 or #6 for which remainders after division by three differ. Similarly, if an edge is present when a Tanner graph is drawn, for a1,2 of check equation #1, belief is propagated from check equation #2 or #5 and check equation #3 or #6 for which remainders after division by three differ.

Similarly, if an edge is present when a Tanner graph is drawn, for a1,3 of check equation #1, belief is propagated from check equation #2 or #5 and check equation #3 or #6 for which remainders after division by three differ. While FIG. 4C shows the belief propagation relationship of terms relating to X(D) of check equation #1 through check equation #6, the same applies to terms relating to P(D).

Thus, belief is propagated to each node in a Tanner graph of check equation #1 from coefficient nodes of other than check equation #1. Therefore, beliefs with low correlation are all propagated to check equation #1, enabling an improvement in error correction capability to be expected.

In FIG. 4C, check equation #1 has been focused upon, but a Tanner graph can be drawn in a similar way for check equation #2 to check equation #6, and belief is propagated to each node in a Tanner graph of check equation #K from coefficient nodes of other than check equation #K. Therefore, beliefs with low correlation are all propagated to check equation #K (where K=2, 3, 4, 5, 6), enabling an improvement in error correction capability to be expected.

By providing for the orders of parity check polynomials of Math. 5-1 through Math. 5-6 to satisfy the above condition about remainders in this way, belief can be propagated efficiently in all check equations, and the possibility of being able to further improve error correction capability is increased.

A case in which the coding rate is ½ has been described above for an LDPC-CC having a time-varying period of six, but the coding rate is not limited to ½. The possibility of achieving good received quality can be increased when the coding rate is (n−1)/n (where n is an integer equal to or greater than two) if the above condition about remainders holds true for three-coefficient sets in information X₁(D), X₂(D), . . . , X_(n−1)(D).

A case in which the coding rate is (n−1)/n (where n is an integer equal to or greater than two) is described below.

Consider Math. 7-1 through Math. 7-6 as parity check polynomials of an LDPC-CC having a time-varying period of six.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 7} \right\rbrack} & \; \\ {{{\left( {D^{{a\; \# \; 1},1,1} + D^{{a\; \# \; 1},1,2} + D^{{a\; \# \; 1},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\; \# \; 1},2,1} + D^{{a\; \# \; 1},2,2} + D^{{a\# \; 1},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\; \# \; 1},{n - 1},1} + D^{{a\; \# \; 1},{n - 1},2} + D^{{a\; \# \; 1},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b\; \# \; 1},1} + D^{{b\; \# \; 1},2} + D^{{b\; \# \; 1},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 7}\text{-}1} \right) \\ {{{\left( {D^{{a\# \; 2},1,1} + D^{{a\; \# \; 2},1,2} + D^{{a\; \# \; 2},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 2},2,1} + D^{{a\# \; 2},2,2} + D^{{a\; \# \; 2},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\; \# \; 2},{n - 1},1} + D^{{a\; \# \; 2},{n - 1},2} + D^{{a\# \; 2},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b\; \# \; 2},1} + D^{{b\; {\# 2}},2} + D^{{b\# \; 2},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 7}\text{-}2} \right) \\ {{{\left( {D^{{a\# \; 3},1,1} + D^{{a\; \# \; 3},1,2} + D^{{a\; \# \; 3},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 3}},2,1} + D^{{a\; \# \; 3},2,2} + D^{{a{\# 3}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\; \# \; 3},{n - 1},1} + D^{{a\# \; 3},{n - 1},2} + D^{{a\; \# \; 3},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b\; \# \; 3},1} + D^{{b\; \# \; 3},2} + D^{{b\; \# \; 3},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 7}\text{-}3} \right) \\ {{{\left( {D^{{a\; \# \; 4},1,1} + D^{{a\; \# \; 4},1,2} + D^{{a\; \# \; 4},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\; \# \; 4},2,1} + D^{{a\; \# \; 4},2,2} + D^{{a\; \# \; 4},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\; \# \; 4},{n - 1},1} + D^{{a\# \; 4},{n - 1},2} + D^{{a\; \# \; 4},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b\; {\# 4}},1} + D^{{b\; \# \; 4},2} + D^{{b\; \# \; 4},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 7}\text{-}4} \right) \\ {{{\left( {D^{{a\; {\# 5}},1,1} + D^{{a\# \; 5},1,2} + D^{{a\; \# \; 5},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\; \# \; 5},2,1,} + D^{{a\; {\# 5}},2,2} + D^{{a\# \; 5},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\; \# \; 5},{n - 1},1} + D^{{a\; \# \; 5},{n - 1},2} + D^{{a\; \# \; 5},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b\# \; 5},1} + D^{{b\; \# \; 5},2} + D^{{b\; \# \; 5},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 7}\text{-}5} \right) \\ {{{\left( {D^{{a\; \# \; 6},1,1} + D^{{a\; {\# 6}},1,2} + D^{{a\; \# \; 6},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\; \# \; 6},2,1} + D^{{a\; \# \; 6},2,2} + D^{{a\; \# \; 6},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\; \# \; 6},{n - 1},1} + D^{{a\; \# \; 6},{n - 1},2} + D^{{a\; \# \; 6},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 6}},1} + D^{{b\; {\# 6}},2} + D^{{b{\# 6}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 7}\text{-}6} \right) \end{matrix}$

Here, X₁(D), X₂(D), . . . , X_(n−1)(D) are polynomial representations of data (information) X₁, X₂, . . . , X_(n−1) and P(D) is a polynomial representation of parity. Here, in Math. 7-1 through Math. 7-6, parity check polynomials are assumed such that there are three terms in X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D), respectively. As in the case of the above coding rate of ½, and in the case of a time-varying period of three, the possibility of being able to achieve higher error correction capability is increased if the condition below (Condition #1) is satisfied in an LDPC-CC having a time-varying period of six and a coding rate of (n−1)/n (where n is an integer equal to or greater than two) represented by parity check polynomials of Math. 7-1 through Math. 7-6.

In an LDPC-CC having a time-varying period of six and a coding rate of (n−1)/n (where n is an integer equal to or greater than two), the parity bit and information bits at point in time i are represented by Pi and X_(i,1), X_(i,2), . . . , X_(i,n−1), respectively. If i%6=k (where k=0, 1, 2, 3, 4, 5) is assumed at this time, a parity check polynomial of Math. 7-(k+1) holds true. For example, if i=8, i%6=2 (k=2), Math. 8 holds true.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 8} \right\rbrack} & \; \\ {{{\left( {D^{{a\; {\# 3}},1,1} + D^{{a\; \# \; 3},1,2} + D^{{a\; \# \; 3},1,3}} \right)X_{8,1}} + {\left( {D^{{a\; \# \; 3},2,1} + D^{{a\; {\# 3}},2,2} + D^{{a\; \# \; 3},2,3}} \right)X_{8,2}} + \ldots + {\left( {D^{{a\; \# \; 3},{n - 1},1} + D^{{a\; \# \; 3},{n - 1},2} + D^{{a\; \# \; 3},{n - 1},3}} \right)X_{8,{n - 1}}} + {\left( {D^{{b\; \# \; 3},1} + D^{{b\; \# \; 3},2} + D^{{b\; \# \; 3},3}} \right)P_{8}}} = 0} & \left( {{Math}.\mspace{14mu} 8} \right) \end{matrix}$

<Condition #1>

In Math. 7-1 through Math. 7-6, combinations of orders of X₁(D), X₂(D), . . . , Xn−1(D) and P(D) satisfy the following condition:

(a_(#1, 1, 1)%3, a_(#1, 1, 2)%3, a_(#1, 1, 3)%3), (a_(#1, 2, 1)%3, a_(#1, 2, 2)%3, a_(#1, 2, 3)%3), …  , (a_(#1, k, 1)%3, a_(#1, k, 2)%3, a_(#1, k, 3)%3), …  , (a_(#1, n − 1, 1)%3, a_(# 1, n − 1, 2)%3, a_(#1, n − 1, 3)%3)  and(b_(#1, 1)%3, b_(#1, 2)%3, b_(#1, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0) (where  k = 1, 2, 3, …  , n − 1); (a_(#2, 1, 1)%3, a_(#2, 1, 2)%3, a_(#2, 1, 3)%3), (a_(#2, 2, 1)%3, a_(#2, 2, 2)%3, a_(#2, 2, 3)%3), …  , (a_(#2, k, 1)%3, a_(#2, k, 2)%3, a_(#2, k, 3)%3), …  , (a_(# 2, n − 1, 1)%3, a_(#2, n − 1, 2)%3, a_(#2, n − 1, 3)%3)  and(b_(#2, 1)%3, b_(#2, 2)%3, b_(#2, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0) (where  k = 1, 2, 3, …  , n − 1); (a_(# 3, 1, 1)%3, a_(#3, 1, 2)%3, a_(# 3, 1, 3)%3), (a_(# 3, 2, 1)%3, a_(#3, 2, 2)%3, a_(#3, 2, 3)%3), …  , (a_(#3, k, 1)%3, a_(# 3, 2, 2)%3, a_(#3, 2, 3)%3), …  , (a_(# 3, n − 1, 1)%3, a_(#3, n − 1, 2)%3, a_(#3, n − 1, 3)%3)  and(b_(#3, 1)%3, b_(#3, 2)%3, b_(#3, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0) (where  k = 1, 2, 3, …  , n − 1); (a_(#4, 1, 1)%3, a_(#4, 1, 2)%3, a_(# 4, 1, 3)%3), (a_(#4, 2, 1)%3, a_(#4, 2, 2)%3, a_(#4, 2, 3)%3), …  , (a_(#4, k, 1)%3, a_(#4, k, 2)%3, a_(# 4, k, 3)%3), …  , (a_(# 4, n − 1, 1)%3, a_(#4, n − 1, 2)%3, a_(# 4, n − 1, 3)%3)  and(b_(#4, 1)%3, b_(#4, 2)%3, b_(#4, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0) (where  k = 1, 2, 3, …  , n − 1); (a_(#5, 1, 1)%3, a_(#5, 1, 2)%3, a_(#5, 1, 3)%3), (a_(#5, 2, 1)%3, a_(#5, k, 2)%3, a_(#5, 2, 3)%3), …  , (a_(#5, k, 1)%3, a_(#5, k, 2)%3, a_(# 5, k, 3)%3), …  , (a_(#5, n − 1, 1)%3, a_(#5, n − 1, 2)%3, a_(#5, k, 3)%3)  and(b_(#5, 1)%3, b_(#5, 2)%3, b_(#5, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0)(where  k = 1, 2, 3, …  , n − 1); and(a_(#6, 1, 1)%3, a_(#6, 1, 2)%3, a_(#6, 1, 3)%3), (a_(#6, 2, 1)%3, a_(#6, 2, 2)%3, a_(#6, 2, 3)%3), …  , (a_(#6, k, 1)%3, a_(#6, k, 2)%3, a_(#6, k, 3)%3), …  , (a_(#6, n − 1, 1)%3, a_(#6, n − 1, 2)%3, a_(#6, n − 1, 3)%3)  and(b_(#6, 1)%3, b_(#6, 2)%3, b_(#6, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0)(where  k = 1, 2, 3, …  , n − 1).

In the above description, a code having high error correction capability has been described for an LDPC-CC having a time-varying period of six, but a code having high error correction capability can also be generated when an LDPC-CC having a time-varying period of 3g (where g=1, 2, 3, 4, . . . ) (that is, an LDPC-CC having a time-varying period of a multiple of three) is created in the same way as with the design method for an LDPC-CC having a time-varying period of three or six. A configuration method for this code is described in detail below.

Consider Math. 9-1 through Math. 9-3g as parity check polynomials of an LDPC-CC having a time-varying period of 3g (where g=1, 2, 3, 4, . . . ) and the coding rate is (n−1)/n (where n is an integer equal to or greater than two).

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 9} \right\rbrack} & \; \\ {{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + D^{{a{\# 1}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + D^{{a{\# 1}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 1}},{n - 1},1} + D^{{a{\# 1}},{n - 1},2} + D^{{a{\# 1}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 1}},1} + D^{{b{\# 1}},2} + D^{{b{\# 1}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 9}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + D^{{a{\# 2}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + D^{{a{\# 2}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 2}},{n - 1},1} + D^{{a{\# 2}},{n - 1},2} + D^{{a{\# 2}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 2}},1} + D^{{b{\# 2}},2} + D^{{b{\# 2}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 9}\text{-}2} \right) \\ {{{{\left( {D^{{a{\# 3}},1,1} + D^{{a{\# 3}},1,2} + D^{{a{\# 3}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 3}},2,1} + D^{{a{\# 3}},2,2} + D^{{a{\# 3}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 3}},{n - 1},1} + D^{{a{\# 3}},{n - 1},2} + D^{{a{\# 3}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 3}},1} + D^{{b{\# 3}},2} + D^{{b{\# 3}},3}} \right){P(D)}}} = 0}\mspace{79mu} \vdots} & \left( {{{Math}.\mspace{14mu} 9}\text{-}3} \right) \\ {{{{\left( {D^{{a\# k},1,1} + D^{{a\# k},1,2} + D^{{a\# k},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\# k},2,1} + D^{{a\# k},2,2} + D^{{a\# k},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# k},{n - 1},1} + D^{{a\# k},{n - 1},2} + D^{{a\# k},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b\# k},1} + D^{{b\# k},2} + D^{{b\# k},3}} \right){P(D)}}} = 0}\mspace{79mu} \vdots} & \left( {{{Math}.\mspace{14mu} 9}\text{-}k} \right) \\ {{{\left( {D^{{{a{\# 3}\; g} - 2},1,1} + D^{{{a{\# 3}\; g} - 2},1,2} + D^{{{a{\# 3}\; g} - 2},1,3}} \right){X_{1}(D)}} + {\left( {D^{{{a{\# 3}\; g} - 2},2,1} + D^{{{a{\# 3}\; g} - 2},2,2} + D^{{{a{\# 3}\; g} - 2},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{{a{\# 3}\; g} - 2},{n - 1},1} + D^{{{a{\# 3}\; g} - 2},{n - 1},2} + D^{{{a{\# 3}\; g} - 2},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{{b{\# 3}\; g} - 2},1} + D^{{{b{\# 3}\; g} - 2},2} + D^{{{b{\# 3}\; g} - 2},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 9}\text{-}\left( {3\; g\text{-}2} \right)} \right) \\ {{{\left( {D^{{{a{\# 3}\; g} - 1},1,1} + D^{{{a{\# 3}\; g} - 1},1,2} + D^{{{a{\# 3}\; g} - 1},1,3}} \right){X_{1}(D)}} + {\left( {D^{{{a{\# 3}\; g} - 1},2,1} + D^{{{a{\# 3}\; g} - 1},2,2} + D^{{{a{\# 3}\; g} - 1},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{{a{\# 3}\; g} - 1},{n - 1},1} + D^{{{a{\# 3}\; g} - 1},{n - 1},2} + D^{{{a{\# 3}\; g} - 1},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{{b{\# 3}\; g} - 1},1} + D^{{{b{\# 3}\; g} - 1},2} + D^{{{b{\# 3}\; g} - 1},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 9}\text{-}\left( {3\; g\text{-}1} \right)} \right) \\ {{{\left( {D^{{a{\# 3}\; g},1,1} + D^{{a{\# 3}\; g},1,2} + D^{{a{\# 3}\; g},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 3}\; g},2,1} + D^{{a{\# 3}\; g},2,2} + D^{{a{\# 3}\; g},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 3}\; g},{n - 1},1} + D^{{a{\# 3}\; g},{n - 1},2} + D^{{a{\# 3}\; g},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 3}\; g},1} + D^{{b{\# 3}\; g},2} + D^{{b{\# 3}\; g},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 9}\text{-}3\; g} \right) \end{matrix}$

Here, X₁(D), X₂(D), . . . , X_(n−1)(D) are polynomial representations of data (information) X₁, X₂, . . . , X_(n−1) and P(D) is a polynomial representation of parity. Here, in Math. 9-1 through 9-3g, parity check polynomials are assumed such that there are three terms in X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D), respectively.

As in the case of an LDPC-CC having a time-varying period of three and an LDPC-CC having a time-varying period of six, the possibility of being able to achieve higher error correction capability is increased if the condition below (Condition #2) is satisfied in an LDPC-CC having a time-varying period of 3g and a coding rate of (n−1)/n (where n is an integer equal to or greater than two) represented by parity check polynomials of Math. 9-1 through Math. 9-3g.

In an LDPC-CC having a time-varying period of 3g and a coding rate of (n−1)/n (where n is an integer equal to or greater than two), the parity bit and information bits at point in time i are represented by P_(i) and X_(i,1), X_(i,2), . . . , X_(i,n−1), respectively. If i%3g=k (where k=0, 1, 2, . . . , 3g−1) is assumed at this time, a parity check polynomial of Math. 9-(k+1) holds true. For example, if i=2, i%3g=2 (k=2), Math. 10 holds true.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 10} \right\rbrack} & \; \\ {{{\left( {D^{{a{\# 3}},1,1} + D^{{a{\# 3}},1,2} + D^{{a{\# 3}},1,3}} \right)X_{2,1}} + {\left( {D^{{a{\# 3}},2,1} + D^{{a{\# 3}},2,2} + D^{{a{\# 3}},2,3}} \right)X_{2,2}} + \ldots + {\left( {D^{{a{\# 3}},{n - 1},1} + D^{{a{\# 3}},{n - 1},2} + D^{{a{\# 3}},{n - 1},3}} \right)X_{2,{n - 1}}} + {\left( {D^{{b{\# 3}},1} + D^{{b{\# 3}},2} + D^{{b{\# 3}},3}} \right)P_{2}}} = 0} & \left( {{Math}.\mspace{14mu} 10} \right) \end{matrix}$

In Math. 9-1 to Math. 9-3g, it is assumed that a_(#k,p,1), a_(#k,p,2) and a_(#k,p,3) are integers (where a_(#k,p,1)≠a_(#k,p,2)≠a_(#k,p,3)) (where k=1, 2, 3, . . . , 3g, and p=1, 2, 3, . . . , n−1). Also, it is assumed that b_(#k,1), b_(#k,2) and b_(#k,3) are integers (where b_(#k,1)≠b_(#k,2)≠b_(#k,3)). A parity check polynomial of Math. 9-k (where k=1, 2, 3, . . . , 3g) is called check equation #k, and a sub-matrix based on the parity check polynomial of Math. 9-k is designated kth sub-matrix H_(k). Next, an LDPC-CC having a time-varying period of 3g is considered that is generated from the first sub-matrix H₁, the second sub-matrix H₂, the third sub-matrix H₃, . . . , and the 3g-th sub-matrix H_(3g).

<Condition #2>

In Math. 9-1 through 9-3g, combinations of orders of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) satisfy the following condition:

(a_(#1, 1, 1)%3, a_(#1, 1, 2)%3, a_(#1, 1, 3)%3), (a_(#1, 2, 1)%3, a_(#1, 2, 2)%3, a_(#1, 2, 3)%3), …  , (a_(#1, p, 1)%3, a_(#1, p, 2)%3, a_(#1, p, 3)%3), …  , (a_(#1, n − 1, 1)%3, a_(# 1, n − 1, 2)%3, a_(#1, n − 1, 3)%3)  and(b_(#1, 1)%3, b_(#1, 2)%3, b_(#1, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0) (where  p = 1, 2, 3, …  , n − 1); (a_(#2, 1, 1)%3, a_(#2, 1, 2)%3, a_(#2, 1, 3)%3), (a_(#2, 2, 1)%3, a_(#2, 2, 2)%3, a_(#2, 2, 3)%3), …  , (a_(#2, p, 1)%3, a_(#2, p, 2)%3, a_(#2, p, 3)%3), …  , (a_(# 2, n − 1, 1)%3, a_(#2, n − 1, 2)%3, a_(#2, n − 1, 3)%3)  and(b_(#2, 1)%3, b_(#2, 2)%3, b_(#2, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0) (where  p = 1, 2, 3, …  , n − 1); (a_(# 3, 1, 1)%3, a_(#3, 1, 2)%3, a_(# 3, 1, 3)%3), (a_(# 3, 2, 1)%3, a_(#3, 2, 2)%3, a_(#3, 2, 3)%3), …  , (a_(#3, k, 1)%3, a_(# 3, 2, 2)%3, a_(#3, 2, 3)%3), …  , (a_(# 3, n − 1,)1%3, a_(#3, n − 1,)2%3, a_(#3, n − 1,)3%3)  and(b_(#3, 1)%3, b_(#3, 2)%3, b_(#3, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0) (where  p = 1, 2, 3, …  , n − 1); ⋮(a_(#k, 1, 1)%3, a_(#k, 1, 2)%3, a_(# k, 1, 3)%3), (a_(#k, 2, 1)%3, a_(#k, 2, 2)%3, a_(#k, 2, 3)%3), …  , (a_(#k, p, 1)%3, a_(#k, p, 2)%3, a_(# k, p, 3)%3), …  , (a_(# k, n − 1, 1)%3, a_(#k, n − 1, 2)%3, a_(# k, n − 1, 3)%3)  and(b_(# k, 1)%3, b_(# k, 2)%3, b_(# k, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0) (where  p = 1, 2, 3, …  , n − 1); (where  k = 1, 2, 3, …  , 3g); ⋮(a_(#3g − 2, 1, 1)%3, a_(#3g − 2, 1, 2)%3, a_(#3g − 2, 1, 3)%3), (a_(#3g − 2, 2, 1)%3, a_(#3g − 2, 2, 2)%3, a_(#3g − 2, 2, 3)%3), …  , (a_(#3g − 2, p, 1)%3, a_(#3g − 2, p, 2)%3, a_(# 3g − 2, p, 3)%3), …  , (a_(#3g − 2, n − 1, 1)%3, a_(#3g − 2, n − 1, 2)%3, a_(#3g − 2, n − 1, 3)%3), and(b_(#3g − 2, 1)%3, b_(#3g − 2, 2)%3, b_(#3 − 2, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0)(where  p = 1, 2, 3, …  , n − 1); (a_(#3g − 1, 1, 1)%3, a_(#3g − 1, 1, 2)%3, a_(#3g − 1, 1, 3)%3), (a_(#3g − 1, 2, 1)%3, a_(#3g − 1, 2, 2)%3, a_(#3g − 1, 2, 3)%3), …  , (a_(#3g − 1, p, 1)%3, a_(#3g − 1, p, 2)%3, a_(#3g − 1, p, 3)%3), …  , (b_(#3g − 1, n − 1, 1)%3, b_(#3g − 1, n − 1, 2)%3, b_(#3g − 1, n − 1, 3)%3)  and(b_(#3g − 1, 1)%3, b_(#3g − 1, 2)%3, b_(#3g − 1, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0)(where  p = 1, 2, 3, …  , n − 1); and(a_(#3g, 1, 1)%3, a_(#3g, 1, 2)%3, a_(#3g, 1, 3)%3), (a_(#3g, 2, 1)%3, a_(#3g, 2, 2)%3, a_(#3g, 2, 3)%3), …  , (a_(#3g, p, 1)%3, a_(#3g, p, 2)%3, a_(#3g, p, 3)%3), …  , (a_(#3g, n − 1, 1)%3, a_(#3g, n − 1, 2)%3, a_(#3g, n − 1, 3)%3)  and(b_(#3g, 1%3), b_(#3g, 2)%3, b_(#3g, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0)(where  p = 1, 2, 3, …  , n − 1).

Taking ease of performing encoding into consideration, it is desirable for one zero to be present among the three items (b_(#k,1)%3, b_(#k,2)%3, b_(#k,3)%3) (where k=1, 2, . . . 3g) in Math. 9-1 through Math. 9-3g. This is because of a feature that, if D⁰=1 holds true and b_(#k,1), b_(#k,2) and b_(#k,3) are integers equal to or greater than zero at this time, parity P can be found sequentially.

Also, in order to provide relevancy between parity bits and data bits of the same time, and to facilitate a search for a code having high correction capability, it is desirable for:

one  zero  to  be  present  among  the  three  items(a_(#k, 1, 1)%3, a_(#k, 1, 2)%3, a_(#k, 1, 3)%3); one  zero  to  be  present  among  the  three  items(a_(#k, 2, 1)%3, a_(#k, 2, 2)%3, a_(#k, 2, 3)%3);                ⋮ one  zero  to  be  present  among  the  three  items(a_(#k, p, 1)%3, a_(#k, p, 2)%3, a_(#k, p, 3)%3);                ⋮ one  zero  to  be  present  among  the  three  items(a_(#k, n − 1, 1)%3, a_(#k, n − 1, 2)%3, a_(#k, n − 1, 3)%3), (where  k = 1, 2, …  , 3g).

Next, an LDPC-CC of a time-varying period of 3g (where g=2, 3, 4, 5, . . . ) that takes ease of encoding into account is considered. At this time, if the coding rate is (n−1)/n (where n is an integer equal to or greater than two), LDPC-CC parity check polynomials can be represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 11} \right\rbrack} & \; \\ {{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + D^{{a{\# 1}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + D^{{a{\# 1}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 1}},{n - 1},1} + D^{{a{\# 1}},{n - 1},2} + D^{{a{\# 1}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 1}},1} + D^{{b{\# 1}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 11}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + D^{{a{\# 2}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + D^{{a{\# 2}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 2}},{n - 1},1} + D^{{a{\# 2}},{n - 1},2} + D^{{a{\# 2}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 2}},1} + D^{{b{\# 2}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 11}\text{-}2} \right) \\ {{{{\left( {D^{{a{\# 3}},1,1} + D^{{a{\# 3}},1,2} + D^{{a{\# 3}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 3}},2,1} + D^{{a{\# 3}},2,2} + D^{{a{\# 3}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 3}},{n - 1},1} + D^{{a{\# 3}},{n - 1},2} + D^{{a{\# 3}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 3}},1} + D^{{b{\# 3}},2} + 1} \right){P(D)}}} = 0}\mspace{79mu} \vdots} & \left( {{{Math}.\mspace{14mu} 11}\text{-}3} \right) \\ {{{{\left( {D^{{a\# k},1,1} + D^{{a\# k},1,2} + D^{{a\# k},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\# k},2,1} + D^{{a\# k},2,2} + D^{{a\# k},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# k},{n - 1},1} + D^{{a\# k},{n - 1},2} + D^{{a\# k},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b\# k},1} + D^{{b\# k},2} + 1} \right){P(D)}}} = 0}\mspace{79mu} \vdots} & \left( {{{Math}.\mspace{14mu} 11}\text{-}k} \right) \\ {{{\left( {D^{{{a{\# 3}\; g} - 2},1,1} + D^{{{a{\# 3}\; g} - 2},1,2} + D^{{{a{\# 3}\; g} - 2},1,3}} \right){X_{1}(D)}} + {\left( {D^{{{a{\# 3}\; g} - 2},2,1} + D^{{{a{\# 3}\; g} - 2},2,2} + D^{{{a{\# 3}\; g} - 2},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{{a{\# 3}\; g} - 2},{n - 1},1} + D^{{{a{\# 3}\; g} - 2},{n - 1},2} + D^{{{a{\# 3}\; g} - 2},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{{b{\# 3}\; g} - 2},1} + D^{{{b{\# 3}\; g} - 2},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 11}\text{-}\left( {3\; g\text{-}2} \right)} \right) \\ {{{\left( {D^{{{a{\# 3}\; g} - 1},1,1} + D^{{{a{\# 3}\; g} - 1},1,2} + D^{{{a{\# 3}\; g} - 1},1,3}} \right){X_{1}(D)}} + {\left( {D^{{{a{\# 3}\; g} - 1},2,1} + D^{{{a{\# 3}\; g} - 1},2,2} + D^{{{a{\# 3}\; g} - 1},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{{a{\# 3}\; g} - 1},{n - 1},1} + D^{{{a{\# 3}\; g} - 1},{n - 1},2} + D^{{{a{\# 3}\; g} - 1},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{{b{\# 3}\; g} - 1},1} + D^{{{b{\# 3}\; g} - 1},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 11}\text{-}\left( {3\; g\text{-}1} \right)} \right) \\ {{{\left( {D^{{a{\# 3}\; g},1,1} + D^{{a{\# 3}\; g},1,2} + D^{{a{\# 3}\; g},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 3}\; g},2,1} + D^{{a{\# 3}\; g},2,2} + D^{{a{\# 3}\; g},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 3}\; g},{n - 1},1} + D^{{a{\# 3}\; g},{n - 1},2} + D^{{a{\# 3}\; g},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 3}\; g},1} + D^{{b{\# 3}\; g},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 11}\text{-}3\; g} \right) \end{matrix}$

At this time, X₁(D), X₂(D), . . . , X_(n−1)(D) are polynomial representations of data (information) X₁, X₂, . . . , X_(n−1) and P(D) is a polynomial representation of parity. Here, in Math. 11-1 through Math. 11-3g, parity check polynomials are assumed such that there are three terms in X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D), respectively. In an LDPC-CC having a time-varying period of 3g and a coding rate of (n−1)/n (where n is an integer equal to or greater than two), the parity bit and information bits at point in time i are represented by Pi and X_(i,1), X_(i,2), . . . , X_(i,n−1), respectively. If i%3g=k (where k=0, 1, 2, . . . , 3g−1) is assumed at this time, a parity check polynomial of Math. 11-(k+1) holds true. For example, if i=2, i%3=2 (k=2), Math. 12 holds true.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 12} \right\rbrack & \; \\ {{{\left( {D^{{a{\# 3}},1,1} + D^{{a{\# 3}},1,2} + D^{{a{\# 3}},1,3}} \right)X_{2,1}} + {\left( {D^{{a{\# 3}},2,1} + D^{{a{\# 3}},2,2} + D^{{a{\# 3}},2,3}} \right)X_{2,2}} + \ldots + {\left( {D^{{a{\# 3}},{n - 1},1} + D^{{a{\# 3}},{n - 1},2} + D^{{a{\# 3}},{n - 1},3}} \right)X_{2,{n - 1}}} + {\left( {D^{{b{\# 3}},1} + D^{{b{\# 3}},2} + 1} \right)P_{2}}} = 0} & \left( {{Math}.\mspace{14mu} 12} \right) \end{matrix}$

If Condition #3 and Condition #4 are satisfied at this time, the possibility of being able to create a code having higher error correction capability is increased.

<Condition #3>

In Math. 11-1 through Math. 11-3g, combinations of orders of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) satisfy the following condition:

(a_(#1, 1, 1)%3, a_(#1, 1, 2)%3, a_(#1, 1, 3)%3), (a_(#1, 2, 1)%3, a_(#1, 2, 2)%3, a_(#1, 2, 3)%3), …  , (a_(#1, p, 1)%3, a_(#1, p, 2)%3, a_(#1, p, 3)%3), …  , and(a_(#1, n − 1, 1)%3, a_(#1, n − 1, 2)%3, a_(#1, n − 1, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or(2, 1, 0)  (where  p = 1, 2, 3, …  , n − 1); (a_(#2, 1, 1)%3, a_(#2, 1, 2)%3, a_(#2, 1, 3)%3), (a_(#2, 2, 1)%3, a_(#2, 2, 2)%3, a_(#2, 2, 3)%3), …  , (a_(#2, p, 1)%3, a_(#2, p, 2)%3, a_(#2, p, 3)%3), …  , and(a_(#2, n − 1, 1)%3, a_(#2, n − 1, 2)%3, a_(#2, n − 1, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or(2, 1, 0)  (where  p = 1, 2, 3, …  , n − 1); (a_(#3, 1, 1)%3, a_(#3, 1, 2)%3, a_(#3, 1, 3)%3), (a_(#3, 2, 1)%3, a_(#3, 2, 2)%3, a_(#3, 2, 3)%3), …  , (a_(#3, p, 1)%3, a_(#3, p, 2)%3, a_(#3, p, 3)%3), …  , and(a_(#3, n − 1, 1)%3, a_(#3, n − 1, 2)%3, a_(#3, n − 1, 3)%3) are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or(2, 1, 0)  (where  p = 1, 2, 3, …  , n − 1); ⋮(a_(#k, 1, 1)%3, a_(#k, 1, 2)%3, a_(#k, 1, 3)%3), (a_(#k, 2, 1)%3, a_(#k, 2, 2)%3, a_(#k, 2, 3)%3), …  , (a_(#k, p, 1)%3, a_(#k, p, 2)%3, a_(#k, p, 3)%3), …  , and(a_(#k, n − 1, 1)%3, a_(#k, n − 1, 2)%3, a_(#k, n − 1, 3)%3) are  any  of(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or(2, 1, 0)  (where  p = 1, 2, 3, …  , n − 1, andk = 1, 2, 3, …  , 3g);             ⋮(a_(#3g − 2, 1, 1)%3, a_(#3g − 2, 1, 2)%3, a_(#3g − 2, 1, 3)%3), (a_(#3g − 2, 2, 1)%3, a_(#3g − 2, 2, 2)%3, a_(#3g − 2, 2, 3)%3), …  , (a_(#3g − 2, p, 1)%3, a_(#3g − 2, p, 2)%3, a_(#3g − 2, p, 3)%3), …  , and(a_(#3g − 2, n − 1, 1)%3, a_(#3g − 2, n − 1, 2)%3, a_(#3g − 2, n − 1, 3)%3) are  any  of(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or(2, 1, 0)  (where  p = 1, 2, 3, …  , n − 1); (a_(#3g − 1, 1, 1)%3, a_(#3g − 1, 1, 2)%3, a_(#3g − 1, 1, 3)%3), (a_(#3g − 1, 2, 1)%3, a_(#3g − 1, 2, 2)%3, a_(#3g − 1, 2, 3)%3), …  , (a_(#3g − 1, p, 1)%3, a_(#3g − 1, p, 2)%3, a_(#3g − 1, p, 3)%3), …  , and(a_(#3g − 1, n − 1, 1)%3, a_(#3g − 1, n − 1, 2)%3, a_(#3g − 1, n − 1, 3)%3) are  any  of(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or(2, 1, 0)  (where  p = 1, 2, 3, …  , n − 1); and(a_(#3g, 1, 1)%3, a_(#3g, 1, 2)%3, a_(#3g, 1, 3)%3), (a_(#3g, 2, 1)%3, a_(#3g, 2, 2)%3, a_(#3g, 2, 3)%3), …  , (a_(#3g, p, 1)%3, a_(#3g, p, 2)%3, a_(#3g, p, 3)%3), …  , and(a_(#3g, n − 1, 1)%3, a_(#3g, n − 1, 2)%3, a_(#3g, n − 1, 3)%3) are  any  of(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or (2, 1, 0)  (where  p = 1, 2, 3, …  , n − 1).

In addition, in Math. 11-1 through 11-3g, combinations of orders of P(D) satisfy the following condition:

(b_(# 1, 1)%3, b_(#1, 2)%3), (b_(# 2, 1)%3, b_(#2, 2)%3), (b_(# 3, 1)%3, b_(#3, 2)%3), …  , (b_(# k, 1)%3, b_(#k, 2)%3), …  , (b_(# 3g − 2, 1)%3, b_(#3g − 2, 2)%3), (b_(# 3g − 1, 1)%3, b_(#3g − 1, 2)%3), and(b_(#3g, 1)%3, b_(# 3g, 2)%3) are  either(1, 2)  or  (2, 1)  (where  k = 1, 2, 3, …  , 3g).

Condition #3 has a similar relationship with respect to Math. 11-1 through Math. 11-3g as Condition #2 has with respect to Math. 9-1 through Math. 9-3g. If the condition below (Condition #4) is added for Math. 11-1 through Math. 11-3g in addition to Condition #3, the possibility of being able to create an LDPC-CC having higher error correction capability is increased.

<Condition #4>

Orders of P(D) of Math. 11-1 through Math. 11-3g satisfy the following condition: all values other than multiples of three (that is, 0, 3, 6, . . . , 3g−3) from among integers from zero to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the values of 6g orders of

(b_(#1, 1)%3g, b_(#1, 2)%3g), (b_(#2, 1)%3g, b_(#2, 2)%3g), (b_(#3, 1)% 3g, b_(#3, 2)%3g), …  , (b_(#k, 1)%3g, b_(# k, 2)%3g), …  , (b_(#3g − 2, 1)%3g, b_(#3g − 2, 2)%3g), (b_(#3g − 1, 1)%3g, b_(#3g − 1, 2)%3g), (b_(#3g, 1)%3g, b_(#3g, 2)%3g) $\begin{pmatrix} {{{in}\mspace{14mu} {this}\mspace{14mu} {case}},{{two}\mspace{14mu} {orders}}} \\ {{{form}\mspace{14mu} a\mspace{14mu} {pair}},{{and}\mspace{14mu} {therefore}\mspace{14mu} {the}\mspace{14mu} {number}}} \\ {{of}\mspace{14mu} {orders}\mspace{14mu} {forming}\mspace{14mu} 3g\mspace{14mu} {pairs}\mspace{14mu} {is}\mspace{14mu} 6g} \end{pmatrix}.$

The possibility of achieving good error correction capability is high if there is also randomness while regularity is maintained for positions at which ones are present in a parity check matrix. With an LDPC-CC having a time-varying period of 3g

(where g=2, 3, 4, 5, . . . ) and the coding rate is (n−1)/n (where n is an integer equal to or greater than two) that has parity check polynomials of Math. 11-1 to 11-3g, if a code is created in which Condition #4 is applied in addition to Condition #3, it is possible to provide randomness while maintaining regularity for positions at which ones are present in a parity check matrix, and therefore the possibility of achieving good error correction capability is increased.

Next, an LDPC-CC having a time-varying period of 3g (where g=2, 3, 4, 5, . . . ) is considered that enables encoding to be performed easily and provides relevancy to parity bits and data bits of the same time. At this time, if the coding rate is (n−1)/n (where n is an integer equal to or greater than two), LDPC-CC parity check polynomials can be represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 13} \right\rbrack} & \; \\ {{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 1}},{n - 1},1} + D^{{a{\# 1}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 1}},1} + D^{{b{\# 1}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 13}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 2}},{n - 1},1} + D^{{a{\# 2}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 2}},1} + D^{{b{\# 2}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 13}\text{-}2} \right) \\ {{{{\left( {D^{{a{\# 3}},1,1} + D^{{a{\# 3}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 3}},2,1} + D^{{a{\# 3}},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 3}},{n - 1},1} + D^{{a{\# 3}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 3}},1} + D^{{b{\# 3}},2} + 1} \right){P(D)}}} = 0}\mspace{79mu} \vdots} & \left( {{{Math}.\mspace{14mu} 13}\text{-}3} \right) \\ {{{{\left( {D^{{a\# k},1,1} + D^{{a\# k},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# k},2,1} + D^{{a\# k},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# k},{n - 1},1} + D^{{a\# k},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b\# k},1} + D^{{b\# k},2} + 1} \right){P(D)}}} = 0}\mspace{79mu} \vdots} & \left( {{{Math}.\mspace{14mu} 13}\text{-}k} \right) \\ {{{\left( {D^{{{a{\# 3}\; g} - 2},1,1} + D^{{{a{\# 3}\; g} - 2},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{{a{\# 3}\; g} - 2},2,1} + D^{{{a{\# 3}\; g} - 2},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{{a{\# 3}\; g} - 2},{n - 1},1} + D^{{{a{\# 3}\; g} - 2},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{{b{\# 3}\; g} - 2},1} + D^{{{b{\# 3}\; g} - 2},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 13}\text{-}\left( {3\; g\text{-}2} \right)} \right. \\ {{{\left( {D^{{{a{\# 3}\; g} - 1},1,1} + D^{{{a{\# 3}\; g} - 1},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{{a{\# 3}\; g} - 1},2,1} + D^{{{a{\# 3}\; g} - 1},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{{a{\# 3}\; g} - 1},{n - 1},1} + D^{{{a{\# 3}\; g} - 1},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{{b{\# 3}\; g} - 1},1} + D^{{{b{\# 3}\; g} - 1},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 13}\text{-}\left( {3\; g\text{-}1} \right)} \right) \\ {{{\left( {D^{{a{\# 3}\; g},1,1} + D^{{a{\# 3}\; g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 3}\; g},2,1} + D^{{a{\# 3}\; g},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 3}\; g},{n - 1},1} + D^{{a{\# 3}\; g},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 3}\; g},1} + D^{{b{\# 3}\; g},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 13}\text{-}3\; g} \right) \end{matrix}$

Here, X₁(D), X₂(D), . . . , X_(n−1)(D) are polynomial representations of data (information) X₁, X₂, . . . , X_(n−1) and P(D) is a polynomial representation of parity. In Math. 13-1 through Math. 13-3g, parity check polynomials are assumed such that there are three terms in X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D), respectively, and term D⁰ is present in X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) (where k=1, 2, 3, . . . , 3g).

In an LDPC-CC having a time-varying period of 3g and a coding rate of (n−1)/n (where n is an integer equal to or greater than two), the parity bit and information bits at point in time i are represented by Pi and X_(i,1), X_(i,2), . . . , X_(i,n−1), respectively. If i%3g=k (where k=0, 1, 2, . . . 3g−1) is assumed at this time, a parity check polynomial of Math. 13-(k+1) holds true. For example, if i=2, i%3g=2 (k=2), Math. 14 holds true.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 14} \right\rbrack & \; \\ {{{\left( {D^{{a{\# 3}},1,1} + D^{{a{\# 3}},1,2} + 1} \right)X_{2,1}} + {\left( {D^{{a{\# 3}},2,1} + D^{{a{\# 3}},2,2} + 1} \right)X_{2,2}} + \ldots + {\left( {D^{{a{\# 3}},{n - 1},1} + D^{{a{\# 3}},{n - 1},2} + 1} \right)X_{2,{n - 1}}} + {\left( {D^{{b{\# 3}},1} + D^{{b{\# 3}},2} + 1} \right)P_{2}}} = 0} & \left( {{Math}.\mspace{14mu} 14} \right) \end{matrix}$

If following Condition #5 and Condition #6 are satisfied at this time, the possibility of being able to create a code having higher error correction capability is increased

<Condition #5>

In Math. 13-1 through Math. 13-3g, combinations of orders of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) satisfy the following condition:

(a_(#1, 1, 1)%3, a_(#1, 1, 2)%3), (a_(#1, 2, 1)%3, a_(#1, 2, 2)%3), …  , (a_(#1, p, 1)%3, a_(#1, p, 2)%3), …  , and(a_(#1, n − 1, 1)%3, a_(#1, n − 1, 2)%3) are  any  of(1, 2), (2, 1)(p = 1, 2, 3, …  , n − 1); (a_(#2, 1, 1)%3, a_(#2, 1, 2)%3), (a_(#2, 2, 1)%3, a_(#2, 2, 2)%3), …  , (a_(#2, p, 1)%3, a_(#2, p, 2)%3), …  , and(a_(#2, n − 1, 1)%3, a_(#2, n − 1, 2)%3) are  either(1, 2)  or  (2, 1) (where  p = 1, 2, 3, …  , n − 1); (a_(#3, 1, 1)%3, a_(#3, 1, 2)%3), (a_(#3, 2, 1)%3, a_(#3, 2, 2)%3), …  , (a_(#3, p, 1)%3, a_(#3, p, 2)%3), …  , and(a_(#3, n − 1, 1)%3, a_(#3, n − 1, 2)%3) are  either(1, 2)  or  (2, 1) (where  p = 1, 2, 3, …  , n − 1);         ⋮(a_(#k, 1, 1)%3, a_(#k, 1, 2)%3), (a_(#k, 2, 1)%3, a_(#k, 2, 2)%3), …  , (a_(#k, p, 1)%3, a_(#k, p, 2)%3), …  , and (a_(#k, n − 1, 1)%3, a_(#k, n − 1, 2)%3) are  either(1, 2)  or  (2, 1) (where  p = 1, 2, 3, …  , n − 1) (where  k = 1, 2, 3, …  , 3g)         ⋮(a_(#3g − 2, 1, 1)%3, a_(#3g − 2, 1, 2)%3), (a_(#3g − 2, 2, 1)%3, a_(#3g − 2, 2, 2)%3), …  , (a_(#3g − 2, p, 1)%3, a_(#3g − 2, p, 2)%3), …  , and (a_(#3g − 2, n − 1, 1)%3, a_(#3g − 2, n − 1, 2)%3) are  either(1, 2)  or  (2, 1) (where  p = 1, 2, 3, …  , n − 1); (a_(#3g − 1, 1, 1)%3, a_(#3g − 1, 1, 2)%3), (a_(#3g − 1, 2, 1)%3, a_(#3g − 1, 2, 2)%3), …  , (a_(#3g − 1, p, 1)%3, a_(#3g − 1, p, 2)%3), …  , and (a_(#3g − 1, n − 1, 1)%3, a_(#3g − 1, n − 1, 2)%3) are  either(1, 2)  or  (2, 1) (where  p = 1, 2, 3, …  , n − 1); and(a_(#3g, 1, 1)%3, a_(#3g, 1, 2)%3), (a_(#3g, 2, 1)%3, a_(#3g, 2, 2)%3), …  , (a_(#3g, p, 1)%3, a_(#3g, p, 2)%3), …  , and(a_(#3g, n − 1, 1)%3, a_(#3g, n − 1, 2)%3) are  either(1, 2)  or  (2, 1) (where  p = 1, 2, 3, …  , n − 1).

In addition, in Math. 13-1 through Math. 13-3g, combinations of orders of P(D) satisfy the following condition:

(b_(#1, 1)%3, b_(#1, 2)%3), (b_(#2, 1)%3, b_(#2, 2)%3), (b_(#3, 1)%3, b_(#3, 2)%3), …  , (b_(#k, 1)%3, b_(#k, 2)%3), …  , (b_(#3g − 2, 1)%3, b_(#3g − 2, 2)%3), (b_(#3g − 1, 1)%3, b_(#3g − 1, 2)%3), and(b_(#3g, 1)%3, b_(#3g, 2)%3) are  either  (1, 2)  or  (2, 1) (where  k = 1, 2, 3, …  , 3g).

Condition #5 has a similar relationship with respect to Math. 13-1 through Math. 13-3g as Condition #2 has with respect to Math. 9-1 through Math. 9-3g. If the condition below (Condition #6) is added for Math. 13-1 through Math. 13-3g in addition to Condition #5, the possibility of being able to create a code having high error correction capability is increased.

<Condition #6>

Orders of X₁(D) of Math. 13-1 through Math. 13-3g satisfy the following condition: all values other than multiples of 3 (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(a_(#1, 1, 1)%3g, a_(#1, 1, 2)%3g), (a_(#2, 1, 1)%3g, a_(#2, 1, 2)%3g), …  , (a_(#p, 1, 1)%3g, a_(#p, 1, 2)%3g), …  , and(a_(#3g, 1, 1)%3g, a_(#3g, 1, 2)%3g) (where  p = 1, 2, 3, …  , 3g);

Orders of X₂(D) of Math. 13-1 through Math. 13-3g satisfy the following condition:

all values other than multiples of 3 (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(a#1,2,1%3g, a#1,2,2%3g),

(a#2,2,1%3g, a#2,2,2%3g), . . . ,

(a#p,2,1%3g, a#p,2,2%3g), . . . , and

(a#3g,2,1%3g, a#3g,2,2%3g) (where p=1, 2, 3, . . . , 3g);

Orders of X₃(D) of Math. 13-1 through Math. 13-3g satisfy the following condition:

all values other than multiples of 3 (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(a_(#1, 3, 1)%3g, a_(#1, 3, 2)%3g), (a_(#2, 3, 1)%3g, a_(#2, 3, 2)%3g), …  , (a_(#p, 3, 1)%3g, a_(#p, 3, 2)%3g), …  , and(a_(#3g, 3, 1)%3g, a_(#3g, 3, 2)%3g) (where  p = 1, 2, 3, …  , 3g);           ⋮

Orders of X_(k)(D) of Math. 13-1 through Math. 13-3g satisfy the following condition:

all values other than multiples of 3 (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(a_(#1, k, 1)%3g, a_(#1, k, 2)%3g), (a_(#2, k, 1)%3g, a_(#2, k, 2)%3g), …  , (a_(#p, k, 1)%3g, a_(#p, k, 2)%3g), …  , and(a_(#3g, k), 1%3g, a_(#3g, k), 2%3g) (where  p = 1, 2, 3, …  , 3g, andk = 1, 2, 3, …  , n − 1);         ⋮

Orders of X_(n−1)(D) of Math. 13-1 through Math. 13-3g satisfy the following condition:

all values other than multiples of 3 (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(a_(#1, n − 1, 1)%3g, a_(#1, n − 1, 2)%3g), (a_(#2, n − 1, 1)%3g, a_(#2, n − 1, 2)%3g), …  , (a_(#p, n − 1, 1)%3g, a_(#p, n − 1, 2)%3g), …  , and(a_(#3g, n − 1, 1)%3g, a_(#3g, n − 1, 2)%3g), (where  p = 1, 2, 3, …  , 3g); and

Orders of P(D) of Math. 13-1 through Math. 13-3g satisfy the following condition:

all values other than multiples of 3 (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(b_(#1, 1)%3g, b_(#1, 2)%3g), (b_(#2, 1)%3g, b_(#2, 2)%3g), (b_(#3, 1)%3g, b_(#3, 2)%3g), …  , (b_(#k, 1)%3g, b_(#k, 2)%3g), …  , (b_(#3g − 2, 1)%3g, b_(#3g − 2, 2)%3g), (b_(#3g − 1, 1)%3g, b_(#3g − 1, 2)%3g) and(b_(#3g, 1)%3g, b_(#3g, 2)%3g) (where  k = 1, 2, 3, …  , n − 1).

The possibility of achieving good error correction capability is high if there is also randomness while regularity is maintained for positions at which ones are present in a parity check matrix. With an LDPC-CC having a time-varying period of 3g (where g=2, 3, 4, 5, . . . ) and the coding rate is (n−1)/n (where n is an integer equal to or greater than two) that has parity check polynomials of Math. 13-1 through Math. 13-3g, if a code is created in which. Condition #6 is applied in addition to Condition #5, it is possible to provide randomness while maintaining regularity for positions at which ones are present in a parity check matrix, and therefore the possibility of achieving good error correction capability is increased.

The possibility of being able to create an LDPC-CC having higher error correction capability is also increased if a code is created using Condition #6′ instead of Condition #6, that is, using Condition #6′ in addition to Condition #5.

<Condition #6′>

Orders of X₁(D) of Math. 13-1 through Math. 13-3g satisfy the following condition: all values other than multiples of 3 (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(a_(#1, 1, 1)%3g, a_(#1, 1, 2)%3g), (a_(#2, 1, 1)%3g, a_(#2, 1, 2)%3g), …  , (a_(#p, 1, 1)%3g, a_(#p, 1, 2)%3g), …  , and(a_(#3g, 1), 1%3g, a_(#3g, 1), 2%3g) (where  p = 1, 2, 3, …  , 3g);

Orders of X₂(D) of Math. 13-1 through Math. 13-3g satisfy the following condition:

all values other than multiples of 3 (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(a_(#1, 2, 1)%3g, a_(#1, 2, 2)%3g), (a_(#2, 2, 1)%3g, a_(#2, 2, 2)%3g), …  , (a_(#p, 2, 1)%3g, a_(#p, 2, 2)%3g), …  , and(a_(#3g, 2, 1)%3g, a_(#3g, 2, 2)%3g) (where  p = 1, 2, 3, …  , 3g);

Orders of X₃(D) of Math. 13-1 through Math. 13-3g satisfy the following condition:

all values other than multiples of 3 (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(a_(#1, 3, 1)%3g, a_(#1, 3, 2)%3g), (a_(#2, 3, 1)%3g, a_(#2, 3, 2)%3g), …  , (a_(#p, 3, 1)%3g, a_(#p, 3, 2)%3g), …  , and(a_(#3g, 3, 1)%3g, a_(#3g, 3, 2)%3g)(where  p = 1, 2, 3, …  , 3g); ⋮

Orders of X_(k)(D) of Math. 13-1 through Math. 13-3g satisfy the following condition:

all values other than multiples of 3 (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(a_(#1, k, 1)%3g, a_(#1, k, 2)%3g), (a_(#2, k, 1)%3g, a_(#2, k, 2)%3g), …  , (a_(#p, k, 1)%3g, a_(#p, k, 2)%3g), …  , (a_(#3g, k, 1)%3g, a_(#3g, k, 2)%3g)(where  p = 1, 2, 3, …  , 3g, andk = 1, 2, 3, …  , n − 1); ⋮

Orders of X_(n−1)(D) of Math. 13-1 through Math. 13-3g satisfy the following condition:

all values other than multiples of 3 (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(a_(#1, n − 1, 1)%3g, a_(#1, n − 1, 2)%3g), (a_(#2, n − 1, 1)%3g, a_(#2, n − 1, 2)%3g), …  , (a_(#p, n − 1, 1)%3g, a_(#p, n − 1, 2)%3g), …  , (a_(#3g, k, 1)%3g, a_(#3g, k, 2)%3g)(where  p = 1, 2, 3, …  , 3g), or

Orders of P(D) of Math. 13-1 through Math. 13-3g satisfy the following condition:

all values other than multiples of 3 (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(b_(#1, 1)%3g, b_(#1, 2)%3g), (b_(#2, 1)%3g, b_(#2, 2)%3g), (b_(#3, 1)%3g, b_(#3, 2)%3g), …  , (b_(#k, 1)%3g, b_(#k, 2)%3g), …  , (b_(#3g − 2, 1)%3g, b_(#3g − 2, 2)%3g), (b_(#3g − 1, 1)%3g, b_(#3g − 1, 2)%3g), (b_(#3g, 1)%3g, b_(#3g, 2)%3g)(where  k = 1, 2, 3, …  , 3g).

The above description relates to an LDPC-CC having a time-varying period of 3g and a coding rate of (n−1)/n (where n is an integer equal to or greater than two). Below, conditions are described for orders of an LDPC-CC having a time-varying period of 3g and a coding rate of ½ (n=2).

Consider Math. 15-1 through Math. 15-3g as parity check polynomials of an LDPC-CC having a time-varying period of 3g (where g=1, 2, 3, 4, . . . ) and the coding rate is ½ (n=2).

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 15} \right\rbrack} & \; \\ {{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + D^{{a{\# 1}},1,3}} \right){X(D)}} + {\left( {D^{{b{\# 1}},1} + D^{{b{\# 1}},2} + D^{{b{\# 1}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 15}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + D^{{a{\# 2}},1,3}} \right){X(D)}} + {\left( {D^{{b{\# 2}},1} + D^{{b{\# 2}},2} + D^{{b{\# 2}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 15}\text{-}2} \right) \\ {{{{\left( {D^{{a{\# 3}},1,1} + D^{{a{\# 3}},1,2} + D^{{a{\# 3}},1,3}} \right){X(D)}} + {\left( {D^{{b{\# 3}},1} + D^{{b{\# 3}},2} + D^{{b{\# 3}},3}} \right){P(D)}}} = 0}\mspace{79mu} \vdots} & \left( {{{Math}.\mspace{14mu} 15}\text{-}3} \right) \\ {{{{\left( {D^{{a\# k},1,1} + D^{{a\# k},1,2} + D^{{a\# k},1,3}} \right){X(D)}} + {\left( {D^{{b\# k},1} + D^{{b\# k},2} + D^{{b\# k},3}} \right){P(D)}}} = 0}\mspace{79mu} \vdots} & \left( {{{Math}.\mspace{14mu} 15}\text{-}k} \right) \\ {{{\left( {D^{{{a{\# 3}\; g} - 2},1,1} + D^{{{a{\# 3}\; g} - 2},1,2} + D^{{{a{\# 3}\; g} - 2},1,3}} \right){X(D)}} + {\left( {D^{{{b{\# 3}\; g} - 2},1} + D^{{{b{\# 3}\; g} - 2},2} + D^{{{b{\# 3}\; g} - 2},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 15}\text{-}\left( {3\; g\text{-}2} \right)} \right) \\ {{{\left( {D^{{{a{\# 3}\; g} - 1},1,1} + D^{{{a{\# 3}\; g} - 1},1,2} + D^{{{a{\# 3}\; g} - 1},1,3}} \right){X(D)}} + {\left( {D^{{{b{\# 3}\; g} - 1},1} + D^{{{b{\# 3}\; g} - 1},2} + D^{{{b{\# 3}\; g} - 1},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 15}\text{-}\left( {3\; g\text{-}1} \right)} \right) \\ {{{\left( {D^{{a{\# 3}\; g},1,1} + D^{{a{\# 3}\; g},1,2} + D^{{a{\# 3}\; g},1,3}} \right){X(D)}} + {\left( {D^{{b{\# 3}\; g},1} + D^{{b{\# 3}\; g},2} + D^{{b{\# 3}\; g},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 15}\text{-}3\; g} \right) \end{matrix}$

Here, X(D) is a polynomial representation of data (information) X and P(D) is a polynomial representation of parity. Here, in Math. 15-1 through Math. 15-3g, parity check polynomials are assumed such that there are three terms in X(D) and P(D), respectively.

Thinking in the same way as in the case of an LDPC-CC having a time-varying period of three and an LDPC-CC of a time-varying period of six, the possibility of being able to achieve higher error correction capability is increased if the condition below (Condition #2-1) is satisfied in an LDPC-CC having a time-varying period of 3g and a coding rate of ½ (n=2) represented by parity check polynomials of Math. 15-1 through Math. 15-3g.

In an LDPC-CC of a time-varying period of 3g and a coding rate of ½ (n=2), the parity bit and the information bits at point in time i are represented by P_(i) and X_(i,1), respectively. If i%3g=k (where k=0, 1, 2, . . . , 3g−1) is assumed at this time, a parity check polynomial of Math. 15-(k+1) holds true. For example, if i=2, i%3g=2 (k=2), Math. 16 holds true.

[Math. 16]

(D ^(a#3,1,1) +D ^(a#3,1,2) +D ^(a#3,1,3))X _(2,1)(D)+(D ^(b#3,1) +D ^(b#3,2) +D ^(b#3,3))P ₂=0  (Math. 16)

In Math. 15-1 through Math. 15-3g, it is assumed that a_(#k,1,1), a_(#k,1,2), and a_(#k,1,3) are integers (where a_(#k,1,1)≠a_(#k,1,2)≠a_(#k,1,3)) (where k=1, 2, 3, . . . , 3g). Also, it is assumed that b_(#k,1), b_(#k,2), and b_(#k,3) are integers (where b_(#k,1)≠b_(#k,2)≠b_(#k,3)). A parity check polynomial of Math. 15-k (k=1, 2, 3, . . . , 3g) is termed check equation #k, and a sub-matrix based on the parity check polynomial of Math. 15-k is designated k-th sub-matrix H_(k). Next, consider an LDPC-CC having a time-varying period of 3g generated from first sub-matrix H₁, second sub-matrix H₂, third sub-matrix H₃, . . . , 3g-th sub-matrix H_(3g).

<Condition #2-1>

In Math. 15-1 through Math. 15-3g, combinations of orders of X(D) and P(D) satisfy the following condition:

(a_(#1, 1, 1)%3, a_(#1, 1, 2)%3, a_(#1, 1, 3)%3)  and(b_(#1, 1)%3, b_(#1, 2)%3, b_(1, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0); (a_(#2, 1, 1)%3, a_(#2, 1, 2)%3, a_(#2, 1, 3)%3)  and(b_(#2, 1)%3, b_(#2, 2)%3, b_(2, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0); (a_(#3, 1, 1)%3, a_(#3, 1, 2)%3, a_(#3, 1, 3)%3)  and(b_(#3, 1)%3, b_(#3, 2)%3, b_(3, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0); ⋮(a_(#k, 1, 1)%3, a_(#k, 1, 2)%3, a_(#k, 1, 3)%3)  and(b_(#k, 1)%3, b_(#k, 2)%3, b_(k, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0) (where  k = 1, 2, 3, …  , 3g); ⋮(a_(#3g − 2, 1, 1)%3, a_(#3g − 2, 1, 2)%3, a_(#3g − 2, 1), 3%3)  and(b_(#3g − 2, 1)%3, b_(#3g − 2, 2)%3, b_(#3g − 2, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0); (a_(#3g − 1, 1, 1)%3, a_(#3g − 1, 1, 2)%3, a_(#3g − 1, 1, 3)%3)  and(b_(#3g − 1, 1)%3, b_(#3g − 1, 2)%3, b_(#3g − 1, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0); and(a_(#3g, 1, 1)%3, a_(#3g, 1, 2)%3, a_(#3g, 1, 3)%3)  and(b_(#3g, 1)%3, b_(#3g, 2)%3, b_(3g, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0).

Taking ease of performing encoding into consideration, it is desirable for one zero to be present among the three items (b_(#k,1)%3, b_(#k,2)%3, b_(#k,3)%3) (where k=1, 2, . . . , 3g) in Math. 15-1 through Math. 15-3g. This is because of a feature that, if D⁰=1 holds true and b_(#k,1), b_(#k,2) and b_(#k,3) are integers equal to or greater than zero at this time, parity P can be found sequentially.

Also, in order to provide relevancy between parity bits and data bits of the same time, and to facilitate a search for a code having high correction capability, it is desirable for one zero to be present among the three items (a_(#k,1,1)%3, a_(#k,1,2)%3, a_(#k,1,3)%3) (where k=1, 2, . . . , 3g).

Next, an LDPC-CC having a time-varying period of 3g (where g=2, 3, 4, 5, . . . ) that takes ease of encoding into account is considered. At this time, if the coding rate is ½ (n=2), LDPC-CC parity check polynomials can be represented as shown below.

$\begin{matrix} {\mspace{76mu} \left\lbrack {{Math}.\mspace{14mu} 17} \right\rbrack} & \; \\ {{{\left( {D^{{a\; {\# 1}},1,1} + D^{{a\; \# \; 1},1,2} + D^{{a\; {\# 1}},1,3}} \right){X(D)}} + {\left( {D^{{b{\# 1}},1} + D^{{b\; {\# 1}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 17}\text{-}1} \right) \\ {{{\left( {D^{{a\; {\# 2}},1,1} + D^{{a\; {\# 2}},1,2} + D^{{a\; {\# 2}},1,3}} \right){X(D)}} + {\left( {D^{{b\; {\# 2}},1} + D^{{b\; {\# 2}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 17}\text{-}2} \right) \\ {{{\left( {D^{{a\; {\# 3}},1,1} + D^{{a\; {\# 3}},1,2} + D^{{a\; {\# 3}},1,3}} \right){X(D)}} + {\left( {D^{{b\; {\# 3}},1} + D^{{b\; {\# 3}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 17}\text{-}3} \right) \\ {\mspace{76mu} \vdots} & \; \\ {{{\left( {D^{{a\; \# \; k},1,1} + D^{{a\; \# k},1,2} + D^{{a\; \# k},1,3}} \right){X(D)}} + {\left( {D^{{b\; \# k},1} + D^{{b\; \# k},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 17}\text{-}k} \right) \\ {\mspace{76mu} \vdots} & \; \\ {{{\left( {D^{{{a\; \# \; 3g} - 2},1,1} + D^{{{a\; {\# 3}g} - 2},1,2} + D^{{{a\; {\# 3}g} - 2},1,3}} \right){X(D)}} + {\left( {D^{{{b\; {\# 3}g} - 2},1} + D^{{{b\; {\# 3}g} - 2},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 17}\text{-}\left( {3g\text{-}2} \right)} \right) \\ {{{\left( {D^{{{a\; {\# 3}g} - 1},1,1} + D^{{{a\; {\# 3}g} - 1},1,2} + D^{{{a\; {\# 3}g} - 1},1,3}} \right){X(D)}} + {\left( {D^{{{b\; {\# 3}g} - 1},1} + D^{{{b\; {\# 3}g} - 1},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 17}\text{-}\left( {3g\text{-}1} \right)} \right) \\ {{{\left( {D^{{a\; {\# 3}g},1,1} + D^{{a\# g},1,2} + D^{{a{\# 3}g},1,3}} \right){X(D)}} + {\left( {D^{{b{\# 3}g},1} + D^{{b{\# 3}g},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 17}\text{-}3g} \right) \end{matrix}$

Here, X(D) is a polynomial representation of data (information) and P(D) is a polynomial representation of parity. Here, in Math. 17-1 to 17-3g, parity check polynomials are assumed such that there are three terms in X(D) and P(D), respectively. In an LDPC-CC having a time-varying period of 3g and a coding rate of ½ (n=2), the parity bit and information bits at point in time i are represented by Pi and X_(i,1), respectively. If i%3g=k (where k=0, 1, 2, . . . , 3g−1) is assumed at this time, a parity check polynomial of Math. 17-(k+1) holds true. For example, if i=2, %3g=2 (k=2), Math. 18 holds true.

[Math. 18]

(D ^(a#3,1,1) +D ^(a#3,1,2) +D ^(a#3,1,3))X _(2,1)(D)+(D ^(b#3,1) +D ^(b#3,2))P ₂=0  (Math. 18)

If Condition #3-1 and Condition #4-1 are satisfied at this time, the possibility of being able to create a code having higher error correction capability is increased.

<Condition #3-1>

In Math. 17-1 through Math. 17-3g, combinations of orders of X(D) satisfy the following condition:

(a_(#1, 1, 1)%3, a_(#1, 1, 2)%3, a_(#1, 1, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0); (a_(#2, 1, 1)%3, a_(#2, 1, 2)%3, a_(#2, 1, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0); (a_(#3, 1, 1)%3, a_(#3, 1, 2)%3, a_(#3, 1, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0); ⋮(a_(#k, 1, 1)%3, a_(#k, 1, 2)%3, a_(#k, 1, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0) (where  k = 1, 2, 3, …  , 3g); ⋮(a_(#3g − 2, 1, 1)%3, a_(#3g − 2, 1, 2)%3, a_(#3g − 2, 1), 3%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0); (a_(#3g − 1, 1, 1)%3, a_(#3g − 1, 1, 2)%3, a_(#3g − 1, 1, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0); and(a_(#3g, 1, 1)%3, a_(#3g, 1, 2)%3, a_(#3g, 1, 3)%3)  are  any  of  (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), or  (2, 1, 0).

In addition, in Math. 17-1 through Math. 17-3g, combinations of orders of P(D) satisfy the following condition:

(b_(#1, 1)%3, b_(#1, 2)%3), (b_(#2, 1)%3, b_(#2, 2)%3), (b_(#3, 1)%3, b_(#3, 2)%3), …  , (b_(#k, 1)%3, b_(#k, 2)%3), …  , (b_(#3g − 2, 1)%3g, b_(#3g − 2, 2)%3), (b_(#3g − 1, 1)%3, b_(#3g − 1, 2)%3), and(b_(#3g, 1)%3, b_(#3g, 2)%3)  are  either  (1, 2)  or  (2, 1)  (k = 1, 2, 3, …  , 3g).

Condition #3-1 has a similar relationship with respect to Math. 17-1 through Math. 17-3g as Condition #2-1 has with respect to Math. 15-1 through Math. 15-3g. If the condition below (Condition #4-1) is added for Math. 17-1 through Math. 17-3g in addition to Condition #3-1, the possibility of being able to create an LDPC-CC having higher error correction capability is increased.

<Condition #4-1>

Orders of P(D) of Math. 17-1 through Math. 17-3g satisfy the following condition: all values other than multiples of three (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(b_(#1, 1)%3g, b_(#1, 2)%3g), (b_(#2, 1)%3g, b_(#2, 2)%3g), (b_(#3, 1)%3g, b_(#3, 2)%3g), …  , (b_(#k, 1)%3g, b_(#k, 2)%3g), …  , (b_(#3g − 2, 1)%3g, b_(#3g − 2, 2)%3g), (b_(#3g − 1, 1)%3g, b_(#3g − 1, 2)%3g), and(b_(#3g, 1)%3g, b_(#3g, 2)%3g).

The possibility of achieving good error correction capability is high if there is also randomness while regularity is maintained for positions at which ones are present in a parity check matrix. With an LDPC-CC having a time-varying period of 3g (where g=2, 3, 4, 5, . . . ) and the coding rate is ½ (n=2) that has parity check polynomials of Math. 17-1 through Math. 17-3g, if a code is created in which Condition #4-1 is applied in addition to Condition #3-1, it is possible to provide randomness while maintaining regularity for positions at which ones are present in a parity check matrix, and therefore the possibility of achieving better error correction capability is increased.

Next, an LDPC-CC having a time-varying period of 3g (where g=2, 3, 4, 5, . . . ) is considered that enables encoding to be performed easily and provides relevancy to parity bits and data bits of the same time. Here if the coding rate is ½ (n=2), LDPC-CC parity check polynomials can be represented as shown below.

$\begin{matrix} {\mspace{76mu} \left\lbrack {{Math}.\mspace{14mu} 19} \right\rbrack} & \; \\ {{{\left( {D^{{a\; {\# 1}},1,1} + D^{{a{\# 1}},1,2} + 1} \right){X(D)}} + {\left( {D^{{b{\# 1}},1} + D^{{b{\# 1}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 19}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + 1} \right){X(D)}} + {\left( {D^{{b{\# 2}},1} + D^{{b{\# 2}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 19}\text{-}2} \right) \\ {{{\left( {D^{{a{\# 3}},1,1} + D^{{a{\# 3}},1,2} + 1} \right){X(D)}} + {\left( {D^{{b{\# 3}},1} + D^{{b{\# 3}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 19}\text{-}3} \right) \\ {\mspace{76mu} \vdots} & \; \\ {{{\left( {D^{{a\# k},1,1} + D^{{a\# k},1,2} + 1} \right){X(D)}} + {\left( {D^{{b\# k},1} + D^{{b\# \; k},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 19}\text{-}k} \right) \\ {\mspace{76mu} \vdots} & \; \\ {{{\left( {D^{{{a{\# 3}g} - 2},1,1} + D^{{{a{\# 3}g} - 2},1,2} + 1} \right){X(D)}} + {\left( {D^{{{b{\# 3}g} - 2},1} + D^{{{b{\# 3}g} - 2},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 19}\text{-}\left( {3g\text{-}2} \right)} \right) \\ {{{\left( {D^{{{a\; {\# 3}g} - 1},1,1} + D^{{{a\# \; 3g} - 1},1,2} + 1} \right){X(D)}} + {\left( {D^{{{b\# \; 3g} - 1},1} + D^{{{b\; {\# 3}g} - 1},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 19}\text{-}\left( {3g\text{-}1} \right)} \right) \\ {{{\left( {D^{{a\; {\# 3}g},1,1} + D^{{a\; \# \; 3g},1,2} + 1} \right){X(D)}} + {\left( {D^{{b{\# 3}g},1} + D^{{b\; {\# 3}g},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 19}\text{-}3g} \right) \end{matrix}$

Here, X(D) is a polynomial representation of data (information) and P(D) is a polynomial representation of parity. In Math. 19-1 through Math. 19-3g, parity check polynomials are assumed such that there are three terms in X(D) and P(D), respectively, and a D⁰ term is present in X(D) and P(D) (where k=1, 2, 3, . . . , 3g).

In an LDPC-CC having a time-varying period of 3g and a coding rate of ½ (n=2), the parity bit and information bits at point in time i are represented by Pi and X_(i,1), respectively. If i%3g=k (where k=0, 1, 2, . . . , 3g−1) is assumed at this time, a parity check polynomial of Math. 19-(k+1) holds true. For example, if i=2, i%3g=2 (k=2), Math. 20 holds true.

[Math. 20]

(D ^(a#3,1,1) +D ^(a#3,1,2))X _(2,1)(D)+(D ^(b#3,1) +D ^(b#3,2))P ₂=0  (Math. 20)

If following Condition #5-1 and Condition #6-1 are satisfied at this time, the possibility of being able to create a code having higher error correction capability is increased.

<Condition #5-1>

In Math. 19-1 through Math. 19-3g, combinations of orders of X(D) satisfy the following condition:

(a_(#1, 1, 1)%3, a_(#1, 1, 2)%3)  is  (1, 2)  or  (2, 1); (a_(#2, 1, 1)%3, a_(#2, 1, 2)%3)  is  (1, 2)  or  (2, 1); (a_(#3, 1, 1)%3, a_(#3, 1, 2)%3)  is  (1, 2)  or  (2, 1); ⋮(a_(#k, 1, 1)%3, a_(#k, 1, 2)%3)  is  (1, 2)  or  (2, 1) (where  k = 1, 2, 3, …  , 3g); ⋮(a_(#3g − 2, 1, 1)%3, a_(#3g − 2, 1, 2)%3)  is  (1, 2)  or  (2, 1), (a_(#3g − 1, 1, 1)%3, a_(#3g − 1, 1, 2)%3)  is  (1, 2)  or  (2, 1); and(a_(#3g, 1, 1)%3, a_(#3g, 1, 2)%3)  is  (1, 2)  or  (2, 1).

In addition, in Math. 19-1 through Math. 19-3g, combinations of orders of P(D) satisfy the following condition:

(b_(#1, 1)%3, b_(#1, 2)%3), (b_(#2, 1)%3, b_(#2, 2)%3), (b_(#3, 1)%3, b_(#3, 2)%3), …  , (b_(#k, 1)%3, b_(#k, 2)%3), …  , (b_(#3g − 2, 1)%3g, b_(#3g − 2, 2)%3), (b_(#3g − 1, 1)%3, b_(#3g − 1, 2)%3), and(b_(#3g, 1)%3, b_(#3g, 2)%3)  are  either  (1, 2)  or  (2, 1)  (where  k = 1, 2, 3, …  , 3g).

Condition #5-1 has a similar relationship with respect to Math. 19-1 through Math. 19-3g as Condition #2-1 has with respect to Math. 15-1 through Math. 15-3g. If the condition below (Condition #6-1) is added for Math. 19-1 through Math. 19-3g in addition to Condition #5-1, the possibility of being able to create an LDPC-CC having higher error correction capability is increased.

<Condition #6-1>

Orders of X(D) of Math. 19-1 through Math. 19-3g satisfy the following condition:

all values other than multiples of 3 (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(a_(#1, 1, 1)%3g, a_(#1, 1, 2)%3g), (a_(#2, 1, 1)%3g, a_(#2, 1, 2)%3g), …  , (a_(#p, 1, 1)%3g, a_(#p, 1, 2)%3g), …  , (a_(#3g, 1, 1)%3g, a_(#3g, 1, 2)%3g)(where  p = 1, 2, 3, …  , 3g);

and orders of P(D) of Math. 19-1 through Math. 19-3g satisfy the following condition:

all values other than multiples of 3 (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(b_(#1, 1)%3g, b_(#1, 2)%3g), (b_(#2, 1)%3g, b_(#2, 2)%3g), (b_(#3, 1)%3g, b_(#3, 2)%3g), …  , (b_(#k, 1)%3g, b_(#k, 2)%3g), …  , (b_(#3g − 2, 1)%3g, b_(#3g − 2, 2)%3g), (b_(#3g − 1, 1)%3g, b_(#3g − 1, 2)%3g), and(b_(#3g, 1)%3g, b_(#3g, 2)%3g)(where  k = 1, 2, 3, …  , 3g).

The possibility of achieving good error correction capability is high if there is also randomness while regularity is maintained for positions at which ones are present in a parity check matrix. With an LDPC-CC having a time-varying period of 3g (where g=2, 3, 4, 5, . . . ) and the coding rate is ½ that has parity check polynomials of Math. 19-1 through Math. 19-3g, if a code is created in which Condition #6-1 is applied in addition to Condition #5-1, it is possible to provide randomness while maintaining regularity for positions at which ones are present in a parity check matrix, and therefore the possibility of achieving better error correction capability is increased.

The possibility of being able to create a code having higher error correction capability is also increased if a code is created using Condition #6′-1> instead of Condition #6-1, that is, using Condition #6′-1 in addition to Condition #5-1.

<Condition #6′-1>

Orders of X(D) of Math. 19-1 through Math. 19-3g satisfy the following condition: all values other than multiples of three (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(a_(#1, 1, 1)%3g, a_(#1, 1, 2)%3g), (a_(#2, 1, 1)%3g, a_(#2, 1, 2)%3g), …  , (a_(#p, 1, 1)%3g, a_(#p, 1, 2)%3g), …  , and(a_(#3g, 1, 1)%3g, a_(#3g, 1, 2)%3g)(where  p = 1, 2, 3, …  , 3g);

or orders of P(D) of Math. 19-1 through Math. 19-3g satisfy the following condition:

all values other than multiples of 3 (that is, 0, 3, 6, . . . , 3g−3) from among integers from 0 to 3g−1 (0, 1, 2, 3, 4, . . . , 3g−2, 3g−1) are present in the following 6g values of

(b_(#1, 1)%3g, b_(#1, 2)%3g), (b_(#2, 1)%3g, b_(#2, 2)%3g), (b_(#3, 1)%3g, b_(#3, 2)%3g), …  , (b_(#k, 1)%3g, b_(#k, 2)%3g), …  , (b_(#3g − 2, 1)%3g, b_(#3g − 2, 2)%3g), (b_(#3g − 1, 1)%3g, b_(#3g − 1, 2)%3g), and(b_(#3g, 1)%3g, b_(#3g, 2)%3g)(where  k = 1, 2, 3, …  , 3g).

Examples of LDPC-CCs having a coding rate of ½ and a time-varying period of six having good error correction capability are shown in Table 6.

TABLE 6 Code Parity check polynomial LDPC-CC #1 having Check polynomial #1: (D³²⁸ + D³¹⁷ + 1)X(D) + (D⁵⁸⁹ + D⁴³⁴ + 1)P(D) = 0 a time-varying period Check polynomial #2: (D⁵⁹⁶ + D⁵⁵³ + 1)X(D) + (D⁵⁸⁶ + D⁴⁶¹ + 1)P(D) = 0 of six and a coding rate Check polynomial #3: (D⁵⁵⁰ + D¹⁴³ + 1)X(D) + (D⁴⁷⁰ + D⁴⁴⁸ + 1)P(D) = 0 of ½ Check polynomial #4: (D⁴⁷⁰ + D²²³ + 1)X(D) + (D²⁵⁶ + D⁴¹ + 1)P(D) = 0 Check polynomial #5: (D⁸⁹ + D⁴⁰ + 1)X(D) + (D³¹⁶ + D⁷¹ + 1)P(D) = 0 Check polynomial #6: (D³²⁰ + D¹⁹⁰ + 1)X(D) + (D⁵⁷⁵ + D¹³⁶ + 1)P(D) = 0 LDPC-CC #2 Check polynomial #1: (D⁵²⁴ + D⁵¹¹ + 1)X(D) + (D²¹⁵ + D¹⁰³ + 1)P(D) = 0 having a time-varying Check polynomial #2: (D⁵⁴⁷ + D²⁸⁷ + 1)X(D) + (D⁴⁶⁷ + D¹ + 1)P(D) = 0 period of six and a Check polynomial #3: (D²⁸⁹ + D⁶² + 1)X(D) + (D⁵⁰³ + D⁵⁰² + 1)P(D) = 0 coding rate of ½ Check polynomial #4: (D⁴⁰¹ + D⁵⁵ + 1)X(D) + (D⁴⁴³ + D¹⁰⁶ + 1)P(D) = 0 Check polynomial #5: (D⁴³³ + D³⁹⁵ + 1)X(D) + (D⁴⁰⁴ + D¹⁰⁰ + 1)P(D) = 0 Check polynomial #6: (D¹³⁶ + D⁵⁹ + 1)X(D) + (D⁵⁹⁹ + D⁵⁵⁹ + 1)P(D) = 0 LDPC-CC #3 Check polynomial #1: (D²⁵³ + D⁴⁴ + 1)X(D) + (D⁴⁷³ + D²⁵⁶ + 1)P(D) = 0 having a time-varying Check polynomial #2: (D⁵⁹⁵ + D¹⁴³ + 1)X(D) + (D⁵⁹⁸ + D⁹⁵ + 1)P(D) = 0 period of six and a Check polynomial #3: (D⁹⁷ + D¹¹ + 1)X(D) + (D⁵⁹² + D⁴⁹¹ + 1)P(D) = 0 coding rate of ½ Check polynomial #4: (D⁵⁰ + D¹⁰ + 1)X(D) + (D³⁶⁸ + D¹¹² + 1)P(D) = 0 Check polynomial #5: (D²⁸⁶ + D²²¹ + 1)X(D) + (D⁵¹⁷ + D³⁵⁹ + 1)P(D) = 0 Check polynomial #6: (D⁴⁰⁷ + D³²² + 1)X(D) + (D²⁸³ + D²⁵⁷ + 1)P(D) = 0

An LDPC-CC having a time-varying period of g with good characteristics has been described above. Also, for an LDPC-CC, it is possible to provide encoded data (codeword) by multiplying information vector n by generator matrix G. That is, encoded data (codeword) c can be represented by c=n×G. Here, generator matrix G is found based on parity check matrix H designed in advance. To be more specific, generator matrix G refers to a matrix satisfying G×H^(T)=0.

For example, a convolutional code of a coding rate of ½ and generator polynomial G=[1 G₁(D)/G₀(D)] will be considered as an example. Here, G₁ represents a feed-forward polynomial and G₀ represents a feedback polynomial. If a polynomial representation of an information sequence (data) is X(D), and a polynomial representation of a parity sequence is P(D), a parity check polynomial is represented as shown in Math. 21 below.

[Math. 21]

G ₁(D)X(D)+G ₀(D)P(D)=0  (Math. 21)

where D is a delay operator.

FIG. 5 shows information relating to a (7, 5) convolutional code. A (7, 5) convolutional code generator polynomial is represented as G=[1 (D²+1)/(D²+D+1)]. Therefore, a parity check polynomial is as shown in Math. 22 below.

[Math. 22]

(D ²+1)X(D)+(D ² +D+1)P(D)=0  (Math. 22)

Here, data at point in time i are represented by Xi, and parity bit by P_(i), and transmission sequence Wi is represented as W_(i)=(X_(i), P_(i)). Then, transmission vector w is represented as w=(X₁, P₁, X₂, P₂, . . . , X_(i), P_(i) . . . )^(T). Thus, from Math. 22, parity check matrix H can be represented as shown in FIG. 5. At this time, the relational expression in Math. 23 below holds true.

[Math. 23]

Hw=0  (Math. 23)

Therefore, with parity check matrix H, the decoding side can perform decoding using belief propagation (BP) decoding, min-sum decoding similar to BP decoding, offset BP decoding, normalized BP decoding, shuffled BP decoding, or suchlike belief propagation, as shown in Non-Patent Literature 4, Non-Patent Literature 5, and Non-Patent Literature 6.

[Convolutional Code-based Time-invariant and Time-varying LDPC-CC (coding rate of (n−1)/n) (where n is a natural number)]

An overview of convolutional code-based time-invariant and time-varying LDPC-CCs is given below.

A parity check polynomial represented as shown in Math. 24 is considered, with polynomial representations of coding rate of R=(n−11)/n as information X₁, X₂, . . . , X_(n−1) as X₁(D), X₂(D), . . . , X_(n−1)(D), and a polynomial representation of parity P as P(D).

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 24} \right\rbrack} & \; \\ {{{\left( {D^{a_{1,1}} + D^{a_{1,2}} + \cdots + D^{a_{1,{r\; 1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{a_{2,1}} + D^{a_{2,2}} + \cdots + D^{a_{2,{r\; 2}}} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{a_{{n - 1},1}} + D^{a_{{n - 1},2}} + \cdots + D^{a_{{n - 1},}r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{b_{1}} + D^{b_{2}} + \cdots + D^{b_{s}} + 1} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 24} \right) \end{matrix}$

In Math. 24, at this time, a_(p,p) (where p=1, 2, . . . , n−1 and q=1, 2, . . . , rp) is, for example, a natural number, and satisfies the condition a_(p,1)≠a_(p,2)≠ . . . ≠a_(p,rp). Also, b_(q)

(where q=1, 2, . . . , s) is a natural number, and satisfies the condition b₁≠b₂≠ . . . ≠b_(s). A code defined by a parity check matrix based on a parity check polynomial of Math. 24 at this time is called a time-invariant LDPC-CC here.

Here, m different parity check polynomials based on Math. 24 are provided (where m is an integer equal to or greater than two). These parity check polynomials are represented as shown below.

[Math.  25] $\begin{matrix} {{{{A_{{X\; 1},i}(D)}{X_{1}(D)}} + {{A_{{X\; 2},i}(D)}{X_{2}(D)}} + \cdots + {{A_{{{Xn} - 1},i}(D)}{X_{n - 1}(D)}} + {{B_{i}(D)}{P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 25} \right) \end{matrix}$

Here, i=0, 1, . . . , m−1.

Then information X₁, X₂, . . . , X_(n−1) at point in time j is represented as X_(1,j), X_(2,j), . . . , X_(n−1,j), parity P at point in time j is represented as P_(j), and u_(j)=(X_(1,j), X_(2,j), . . . , X_(n−1,j), P_(j))^(T). At this time, information X_(1,j), X_(2,j), . . . , X_(n−1,j), and parity P_(j) at point in time j satisfy a parity check polynomial of Math. 26.

[Math.  26] $\begin{matrix} {{{{{A_{{X\; 1},k}(D)}{X_{1}(D)}} + {{A_{{X\; 2},k}(D)}{X_{2}(D)}} + \cdots + {{A_{{{Xn} - 1},k}(D)}{X_{n - 1}(D)}} + {{B_{k}(D)}{P(D)}}} = 0}\left( {k = {j\mspace{14mu} {mod}\mspace{14mu} m}} \right)} & \left( {{Math}.\mspace{14mu} 26} \right) \end{matrix}$

Here, j mod m is a remainder after dividing j by m.

A code defined by a parity check matrix based on a parity check polynomial of Math. 26 at this time is called a time-invariant LDPC-CC here. Here, a time-invariant LDPC-CC defined by a parity check polynomial of Math. 24 and a time-varying LDPC-CC defined by a parity check polynomial of Math. 26 have a characteristic of enabling parity bits easily to be found sequentially by means of a register and exclusive OR.

For example, the configuration of LDPC-CC check matrix H of a time-varying period of two and a coding rate of ⅔ based on Math. 24 through Math. 26 is shown in FIG. 6. Two different check polynomials having a time-varying period of two based on Math. 26 are designated check equation #1 and check equation #2. In FIG. 6, (Ha, 111) is a part corresponding to check equation #1, and (Hc, 111) is a part corresponding to check equation #2. Below, (Ha, 111) and (Hc, 111) are defined as sub-matrices.

Thus, LDPC-CC check matrix H having a time-varying period of two of this proposal can be defined by a first sub-matrix representing a parity check polynomial of check equation #1, and by a second sub-matrix representing a parity check polynomial of check equation #2. Specifically, in parity check matrix H, a first sub-matrix and second sub-matrix are arranged alternately in the row direction. When the coding rate is ⅔, a configuration is employed in which a sub-matrix is shifted three columns to the right between an ith row and (i+1)th row, as shown in FIG. 6.

In the case of a time-varying LDPC-CC of a time-varying period of two, an ith row sub-matrix and an (i+1)th row sub-matrix are different sub-matrices. That is to say, either sub-matrix (Ha, 11) or sub-matrix (Hc, 11) is a first sub-matrix, and the other is a second sub-matrix. If transmission vector u is represented as u=(X_(1,0), X_(2,0), P₀, X_(1,1), X_(2,1), P₁, . . . , X_(1,k), X_(2,k), P_(k), . . . )^(T), the relationship Hu=0 holds true (see Math. 23).

Next, an LDPC-CC having a time-varying period of m is considered in the case of a coding rate of ⅔. In the same way as when the time-varying period is 2, m parity check polynomials represented by Math. 24 are provided. Then check equation #1 represented by Math. 24 is provided. Check equation #2 through check equation #m represented by Math. 24 are provided in a similar way. Data X and parity P of point in time mi+1 are represented by X_(mi+1) and P_(mi+1) respectively, data X and parity P of point in time mi+2 are represented by X_(mi+2) and P_(mi+2) respectively, . . . , and data X and parity P of point in time mi+m are represented by X_(mi+m) and P_(mi+m), respectively (where i is an integer).

Consider an LDPC-CC for which parity P_(mi+1) of point in time mi+1 is found using check equation #1, parity P_(mi+2) of point in time mi+2 is found using check equation #2, . . . , and parity P_(mi+m) of point in time mi+m is found using check equation #m. An LDPC-CC code of this kind provides the following advantages:

-   -   An encoder can be configured easily, and parity bits can be         found sequentially.     -   Termination bit reduction and received quality improvement in         puncturing upon termination can be expected.

FIG. 7 shows the configuration of the above LDPC-CC check matrix having a coding rate of ⅔ and a time-varying period of m. In FIG. 7, (H1, 111) is a part corresponding to check equation #1, (H₂, 111) is a part corresponding to check equation #2, . . . , and (H_(m), 111) is a part corresponding to check equation #m. Below, (H_(m), 111) is defined as a first sub-matrix, (H₂, 111) is defined as a second sub-matrix, . . . , and (H_(m), 111) is defined as an mth sub-matrix.

Thus, LDPC-CC check matrix H of a time-varying period of m of this proposal can be defined by a first sub-matrix representing a parity check polynomial of check equation #1, a second sub-matrix representing a parity check polynomial of check equation #2, . . . , and an mth sub-matrix representing a parity check polynomial of check equation #m. Specifically, in parity check matrix H, a first sub-matrix to mth sub-matrix are arranged periodically in the row direction (see FIG. 7). When the coding rate is ⅔, a configuration is employed in which a sub-matrix is shifted three columns to the right between an i-th row and (i+1)th row (see FIG. 7).

If transmission vector u is represented as u=(X_(1,0), X_(2,0), P₀, X_(1,1), X_(2,1), P₁, . . . , X_(1,k), X_(2,k), P_(k), . . . )^(T), the relationship Hu=0 holds true (see Math. 23).

In the above description, a case of a coding rate of ⅔ has been described as an example of a time-invariant and time-varying LDPC-CC based on a convolutional code having a coding rate of (n−1)/n, but a time-invariant/time-varying LDPC-CC check matrix based on a convolutional code of a coding rate of (n−1)/n can be created by thinking in a similar way.

That is to say, in the case of a coding rate of ⅔, in FIG. 7, (H₁, 111) is a part (first sub-matrix) corresponding to check equation #1, (H₂, 111) is a part (second sub-matrix) corresponding to check equation #2, . . . , and (H_(m), 111) is a part (mth sub-matrix) corresponding to check equation #m, while, in the case of a coding rate of (n−1)/n, the situation is as shown in FIG. 8. That is to say, a part (first sub-matrix) corresponding to check equation #1 is represented by (H₁, 11 . . . 1), and a part (kth sub-matrix) corresponding to check equation #k (where k=2, 3, . . . ; m) is represented by (H_(k), 11 . . . 1). At this time, the number of ones of the portion except H_(k) of the kth sub-matrix is n. In check matrix H, a configuration is employed in which a sub-matrix is shifted n columns to the right between an ith row and (i+1)th row (see FIG. 8).

If transmission vector u is represented as u=(X_(1,0), X_(2,0), . . . , X_(n−1,0), P₀, X_(1,1), X_(2,1), . . . , X_(n−1,1), P₁, . . . , X_(1,k), X_(2,k), . . . , X_(n−1,k), P_(k), . . . )^(T), the relationship Hu=0 holds true (see Math. 23)

FIG. 9 shows an example of the configuration of an LDPC-CC encoder when the coding rate is R=½. As shown in FIG. 9, the LDPC-CC encoder 100 is provided mainly with a data computing section 110, a parity computing section 120, a weight control section 130, and modulo 2 adder (exclusive OR computer) 140.

The data computing section 110 is provided with shift registers 111-1 to 111-M and weight multipliers 112-0 to 112-M.

The parity computing section 120 is provided with shift registers 121-1 to 121-M and weight multipliers 122-0 to 122-M.

The shift registers 111-1 to 111-M and 121-1 to 121-M are registers storing v_(1,t−i) and v_(2,t−i) (where i=0, . . . , M), respectively, and, at a timing at which the next input comes in, send a stored value to the adjacent shift register to the right, and store a new value sent from the adjacent shift register to the left. The initial state of the shift registers is all-zeros.

The weight multipliers 112-0 to 112-M and 122-0 to 122-M switch values of h₁ ^((m)) and h₂ ^((m)) to zero or one in accordance with a control signal output from the weight control section 130.

Based on a parity check matrix stored internally, the weight control section 130 outputs values of h₁ ^((m)) and h₂ ^((m)) at that timing, and supplies them to the weight multiplier 112-0 to 112-M and 122-0 to 122-M.

The modulo 2 adder 140 adds all modulo 2 calculation results to the outputs of the weight multipliers 112-0 to 112-M and 122-0 to 122-M, and calculates v_(2,t).

By employing this kind of configuration, the LDPC-CC encoder 100 can perform LDPC-CC encoding in accordance with a parity check matrix.

If the arrangement of rows of a parity check matrix stored by the weight control section 130 differs on a row-by-row basis, the LDPC-CC encoder 100 is a time-varying convolutional encoder. Also, in the case of an LDPC-CC having a coding rate of (q−1)/q, a configuration needs to be employed in which (q−1) data computing sections 110 are provided and the modulo 2 adder 140 performs modulo 2 addition (exclusive OR computation) of the outputs of weight multipliers.

Embodiment 1

The present embodiment describes a code configuration method of an LDPC-CC based on a parity check polynomial having a time-varying period greater than three and having excellent error correction capability.

[Time-Varying Period of Six]

First, an LDPC-CC having a time-varying period of six is described as an example.

Consider Math. 27-0 through 27-5 as parity check polynomials (that satisfy 0) of an LDPC-CC having a coding rate of (n−1)/n (n is an integer equal to or greater than two) and a time-varying period of six.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 27} \right\rbrack & \; \\ {{{\left( {D^{{a\# \; 0},1,1} + D^{{a{\# 0}},1,2} + D^{{a{\# 0}},1,3}} \right){X_{1}(D)}} + {\left( {\overset{{a{\# 0}},2,1}{D} + D_{{a{\# 0}},2,2} + D^{{a{\# 0}},2,3}} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 0}},{n - 1},1} + D^{{a{\# 0}},{n - 1},2} + D^{{a{\# 0}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 0}},1} + D^{{b{\# 0}},2} + D^{{b{\# 0}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 27}\text{-}0} \right) \\ {{{\left( {D^{{a\# \; 1},1,1} + D^{{a{\# 1}},1,2} + D^{{a{\# 1}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 1},2,1} + D^{{a\# \; 1},2,2} + D^{{a{\# 1}},2,3}} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 1}},{n - 1},1} + D^{{a{\# 1}},{n - 1},2} + D^{{a{\# 1}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 1}},1} + D^{{b{\# 1}},2} + D^{{b{\# 1}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 27}\text{-}1} \right) \\ {{{\left( {D^{{a\# \; 2},1,1} + D^{{a{\# 2}},1,2} + D^{{a{\# 2}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 2},2,1} + D^{{a\# \; 2},2,2} + D^{{a{\# 2}},2,3}} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 2}},{n - 1},1} + D^{{a{\# 2}},{n - 1},2} + D^{{a{\# 2}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 2}},1} + D^{{b{\# 2}},2} + D^{{b{\# 2}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 27}\text{-}2} \right) \\ {{{\left( {D^{{a\# \; 3},1,1} + D^{{a{\# 3}},1,2} + D^{{a{\# 3}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 3},2,1} + D^{{a{\# 3}},2,2} + D^{{a{\# 3}},2,3}} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 3}},{n - 1},1} + D^{{a{\# 3}},{n - 1},2} + D^{{a{\# 3}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 3}},1} + D^{{b{\# 3}},2} + D^{{b{\# 3}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 27}\text{-}3} \right) \\ {{{\left( {D^{{a\# \; 4},1,1} + D^{{a{\# 4}},1,2} + D^{{a{\# 4}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 4}},2,1} + D^{{a{\# 4}},2,2} + D^{{a{\# 4}},2,3}} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 4}},{n - 1},1} + D^{{a{\# 4}},{n - 1},2} + D^{{a{\# 4}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 4}},1} + D^{{b{\# 4}},2} + D^{{b{\# 4}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 27}\text{-}4} \right) \\ {{{\left( {D^{{a\# \; 5},1,1} + D^{{a{\# 5}},1,2} + D^{{a{\# 5}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 5}},2,1} + D^{{a{\# 5}},2,2} + D^{{a{\# 5}},2,3}} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 5}},{n - 1},1} + D^{{a{\# 5}},{n - 1},2} + D^{{a{\# 5}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 5}},1} + D^{{b{\# 5}},2} + D^{{b{\# 5}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 27}\text{-}5} \right) \end{matrix}$

Here, X₁(D), X₂(D), . . . , X_(n−1)(D) are polynomial representations of data (information) X₁, X₂, . . . X_(n−1) and P(D) is a polynomial representation of parity. In Math. 27-0 through 27-5, when, for example, the coding rate is ½, only the terms of X₁(D) and P(D) are present and the terms of X₂(D), . . . , X_(n−1)(D) are not present. Similarly, when the coding rate is ⅔, only the terms of X₁(D), X₂(D) and P(D) are present and the terms of X₃(D), . . . , X_(n−1)(D) are not present. The other coding rates may also be considered in a similar manner.

Here, Math. 27-0 through 27-5 are assumed to have such parity check polynomials that three terms are present in each of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D).

Furthermore, in Math. 27-0 through 27-5, it is assumed that the following holds true for X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D).

In Math. 27-q, it is assumed that a_(#q,p,1), a_(#q,p,2) and a_(#q,p,3) are natural numbers and a_(#q,p,1)≠a_(#q,p,2), a_(#q,p,4)≠a_(#q,p,3) and a_(#q,p,2)≠a_(#q,p,3) hold true. Furthermore, it is assumed that b_(#q,1), b_(#q,2) and b_(#q,3) are natural numbers and b_(#q,1)≠b_(#q,2), b_(#q,1)≠b_(#q,3) and b_(#q,1)≠b_(#q,3) hold true (q=0, 1, 2, 3, 4, 5; p=1, 2, . . . , n−1).

The parity check polynomial of Math. 27-q is called check equation #q and the sub-matrix based on the parity check polynomial of Math. 27-q is called qth sub-matrix H_(q). Next, consider an LDPC-CC of a time-varying period of six generated from zeroth sub-matrix H₀, first sub-matrix H₁, second sub-matrix H₂, third sub-matrix H₃, fourth sub-matrix H₄ and fifth sub-matrix Hs.

In an LDPC-CC having a time-varying period of six and a coding rate of (n−1)/n (where n is an integer equal to or greater than two), the parity bit and information bits at point in time i are represented by Pi and X_(i,1), X_(i,2), . . . , X_(i,n−1), respectively. If i%6g=k (where k=0, 1, 2, 3, 4, 5) is assumed at this time, a parity check polynomial of Math. 27-(k) holds true. For example, if i=8, i%6g=2 (k=2), Math. 28 holds true.

[Math.  28] $\begin{matrix} {{{\left( {D^{{a\# \; 2},1,1} + D^{{a\# \; 2},1,2} + D^{{a\# \; 2},1,3}} \right)X_{8,1}} + {\left( {D^{{a\# \; 2},2,1} + D^{{a\# \; 2},2,2} + D^{{a\# \; 2},2,3}} \right)X_{8,2}} + \cdots + {\left( {D^{{a\# \; 2},{n - 1},1} + D^{{a\# \; 2},{n - 1},2} + D^{{a\# \; 2},{n - 1},3}} \right)X_{8,{n - 1}}} + {\left( {D^{{b\# \; 2},1} + D^{{b\# \; 2},2} + D^{{b\# \; 2},3}} \right)P_{8}}} = 0} & \left( {{Math}.\mspace{14mu} 28} \right) \end{matrix}$

Furthermore, when the sub-matrix (vector) of Math. 27-g is assumed to be H_(g), the parity check matrix can be created using the method described in [LDPC-CC based on parity check polynomial].

It is assumed that a_(#q,1,3)=0 and b_(#q,3)=0 (q=0, 1, 2, 3, 4, 5) so as to simplify the relationship between the parity bits and information bits in Math. 27-0 through 27-5 and sequentially find the parity bits. Therefore, the parity check polynomials (that satisfy 0) of Math. 27-0 through 27-5 are represented as shown in Math. 29-0 through Math. 29-5.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 29} \right\rbrack & \; \\ {{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 0}},{n - 1},1} + D^{{a{\# 0}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 0}},1} + D^{{b{\# 0}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 29}\text{-}0} \right) \\ {{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 1}},{n - 1},1} + D^{{a{\# 1}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 1}},1} + D^{{b{\# 1}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 29}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 2}},{n - 1},1} + D^{{a{\# 2}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 2}},1} + D^{{b{\# 2}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 29}\text{-}2} \right) \\ {{{\left( {D^{{a{\# 3}},1,1} + D^{{a{\# 3}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 3}},2,1} + D^{{a{\# 3}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 3}},{n - 1},1} + D^{{a{\# 3}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 3}},1} + D^{{b{\# 3}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 29}\text{-}3} \right) \\ {{{\left( {D^{{a{\# 4}},1,1} + D^{{a{\# 4}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 4}},2,1} + D^{{a{\# 4}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 4}},{n - 1},1} + D^{{a{\# 4}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 4}},1} + D^{{b{\# 4}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 29}\text{-}4} \right) \\ {{{\left( {D^{{a{\# 5}},1,1} + D^{{a{\# 5}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 5}},2,1} + D^{{a{\# 5}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 5}},{n - 1},1} + D^{{a{\# 5}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 5}},1} + D^{{b{\# 5}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 29}\text{-}5} \right) \end{matrix}$

Furthermore, it is assumed that zeroth sub-matrix H₀, first sub-matrix H₁, second sub-matrix H₂, third sub-matrix H₃, fourth sub-matrix H₄ and fifth sub-matrix Hs are represented as shown in Math. 30-0 through Math. 30-5.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 30} \right\rbrack & \; \\ {H_{0} = \left\{ {H_{0}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{{Math}.\mspace{14mu} 30}\text{-}0} \right) \\ {H_{1} = \left\{ {H_{1}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{{Math}.\mspace{14mu} 30}\text{-}1} \right) \\ {H_{2} = \left\{ {H_{2}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{{Math}.\mspace{14mu} 30}\text{-}2} \right) \\ {H_{3} = \left\{ {H_{3}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{{Math}.\mspace{14mu} 30}\text{-}3} \right) \\ {H_{4} = \left\{ {H_{4}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{{Math}.\mspace{14mu} 30}\text{-}4} \right) \\ {H_{5} = \left\{ {H_{5}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{{Math}.\mspace{14mu} 30}\text{-}5} \right) \end{matrix}$

In Math. 30-0 through Math. 30-5, n continuous ones correspond to the terms of X (D), X₂(D), . . . , X_(n−1)(D) and P(D) in each of Math. 29-0 through Math. 29-5.

Here, parity check matrix H can be represented as shown in FIG. 10. As shown in FIG. 10, a configuration is employed in which a sub-matrix is shifted n columns to the right between an ith row and (i+1)th row in parity check matrix H (see FIG. 10). Assuming transmission vector u as u=(X_(1,0), X_(2,0), . . . , X_(n−1,0), P₀, X_(1,1), X_(2,1), . . . , X_(n−1,1), P₁, . . . , X_(1,k), X_(2,k), . . . , X_(n−1,k), P_(k), . . . )^(T), Hu=0 holds true.

Here, conditions for the parity check polynomials in Math. 29-0 through Math. 29-5 are proposed under which high error correction capability can be achieved.

Condition #1-1 and Condition #1-2 below are important for the terms relating to X₁(D), X₂(D), . . . , X_(n−1)(D). In the following conditions, % means a modulo, and for example, α%6 represents a remainder after dividing α by 6.

<Condition #1-1>

a_(#0, 1, 1)%6 = a_(#1, 1, 1)%6 = a_(#2, 1, 1)%6 = a_(#3, 1, 1)%6 = a_(#4, 1, 1)%6 = a_(#5, 1, 1)%6 = v_(p = 1)  (v_(p = 1):fixed-value) a_(#0, 2, 1)%6 = a_(#1, 2, 1)%6 = a_(#2, 2, 1)%6 = a_(#3, 2, 1)%6 = a_(#4, 2, 1)%6 = a_(#5, 2, 1)%6 = v_(p = 2)  (v_(p = 2):fixed-value) a_(#0, 3, 1)%6 = a_(#1, 3, 1)%6 = a_(#2, 3, 1)%6 = a_(#3, 3, 1)%6 = a_(#4, 3, 1)%6 = a_(#5, 3, 1)%6 = v_(p = 3)  (v_(p = 3):fixed-value) a_(#0, 4, 1)%6 = a_(#1, 4, 1)%6 = a_(#2, 4, 1)%6 = a_(#3, 4, 1)%6 = a_(#4, 4, 1)%6 = a_(#5, 4, 1)%6 = v_(p = 4)  (v_(p = 4):fixed-value) ⋮ a_(#0, k, 1)%6 = a_(#1, k, 1)%6 = a_(#2, k, 1)%6 = a_(#3, k, 1)%6 = a_(#4, k, 1)%6 = a_(#5, k, 1)%6 = v_(p = k)  (v_(p = k):fixed-value)  (therefore, k = 1, 2, …, n − 1) ⋮ a_(#0, n − 2, 1)%6 = a_(#1, n − 2, 1)%6 = a_(#2, n − 2, 1)%6 = a_(#3, n − 2, 1)%6 = a_(#4, n − 2, 1)%6 = a_(#5, n − 2, 1)%6 = v_(p = n − 2)  (v_(p = n − 2):fixed-value) a_(#0, n − 1, 1)%6 = a_(#1, n − 1, 1)%6 = a_(#2, n − 1, 1)%6 = a_(#3, n − 1, 1)%6 = a_(#4, n − 1, 1)%6 = a_(#5, n − 1, 1)%6 = v_(p = n − 1)  (v_(p = n − 1):fixed-value) and b_(#0, 1)%6 = b_(#1, 1)%6 = b_(#2, 1)%6 = b_(#3, 1)%6 = b_(#4, 1)%6 = b_(#5, 1)%6 = w  (w:fixed-value)

<Condition #1-2>

a_(#0, 1, 2)%6 = a_(#1, 1, 2)%6 = a_(#2, 1, 2)%6 = a_(#3, 1, 2)%6 = a_(#4, 1, 2)%6 = a_(#5, 1, 2)%6 = y_(p = 1)  (y_(p = 1):fixed-value) a_(#0, 2, 2)%6 = a_(#1, 2, 2)%6 = a_(#2, 2, 2)%6 = a_(#3, 2, 2)%6 = a_(#4, 2, 2)%6 = a_(#5, 2, 2)%6 = y_(p = 2)  (y_(p = 2):fixed-value) a_(#0, 3, 2)%6 = a_(#1, 3, 2)%6 = a_(#2, 3, 2)%6 = a_(#3, 3, 2)%6 = a_(#4, 3, 2)%6 = a_(#5, 3, 2)%6 = y_(p = 3)  (y_(p = 3):fixed-value) a_(#0, 4, 2)%6 = a_(#1, 4, 2)%6 = a_(#2, 4, 2)%6 = a_(#3, 4, 2)%6 = a_(#4, 4, 2)%6 = a_(#5, 4, 2)%6 = y_(p = 4)  (y_(p = 4):fixed-value) ⋮ a_(# 0, k, 2)%6 = a_(#1, k, 2)%6 = a_(#2, k, 2)%6 = a_(#3, k, 2)%6 = a_(#4, k, 2)%6 = a_(#5, k, 2)%6 = y_(p = k)  (y_(p = k):fixed-value)  (therefore, k = 1, 2, …, n − 1) ⋮ a_(#0, n − 2, 2)%6 = a_(#1, n − 2, 2)%6 = a_(#2, n − 2, 2)%6 = a_(#3, n − 2, 2)%6 = a_(#4, n − 2, 2)%6 = a_(#5, n − 2, 2)%6 = y_(p = n − 2)  (y_(n = p − 2):fixed-value) a_(#0, n − 1, 2)%6 = a_(#1, n − 1, 2)%6 = a_(#2, n − 1, 2)%6 = a_(#3, n − 1, 2)%6 = a_(#4, n − 1, 2)%6 = a_(#5, n − 1, 2)%6 = y_(p = n − 1)  (y_(n = p − 1):fixed-value)  and b_(#0, 2)%6 = b_(#1, 2)%6 = b_(#2, 2)%6 = b_(#3, 2)%6 = b_(#4, 2)%6 = b_(#5, 2)%6 = z  (z:fixed-value)

By designating Condition #1-1 and Condition #1-2 as constraint conditions, the LDPC-CC that satisfies the constraint conditions becomes a regular LDPC code, and can thereby achieve high error correction capability.

Next, other important constraint conditions are described.

<Conditions #2-1>

In Condition #1-1, v_(p=1), v_(p=2), v_(p=3), v_(p=4), . . . , v_(p=k), . . . , v_(p=n−2), v_(p=n−1), and w are set to one, four, and five. That is, v_(p=k) (k=1, 2, . . . , n−1) and w are set to one and natural numbers other than divisors of a time-varying period of six.

<Condition #2-2>

In Condition #1-2, y_(p=1), y_(p=2), y_(p=3), y_(p=4), . . . , y_(p=k), . . . , y_(p=n−2), y_(p=n−1) and z are set to one, four, and five. That is, y_(p=k) (k=1, 2, . . . , n−1) and z are set to one and natural numbers other than divisors of a time-varying period of six

By adding the constraint conditions of Condition #2-1 and Condition #2-2 or the constraint conditions of Condition #2-1 or Condition #2-2, it is possible to clearly provide an effect of increasing the time-varying period compared to a case where the time-varying period is small such as a time-varying period of two or three. This point is described in detail with reference to the accompanying drawings.

For simplicity of explanation, a case is considered where X₁(D) in parity check polynomials 29-0 to 29-5 of an LDPC-CC having a time-varying period of six and a coding rate of (n−1)/n based on parity check polynomials has two terms. At this time, the parity check polynomials are represented as shown in Math. 31-0 through Math. 31-5.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 31} \right\rbrack & \; \\ {{{\left( {D^{{a{\# 0}},1,1} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 0}},{n - 1},1} + D^{{a{\# 0}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 0}},1} + D^{{b{\# 0}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 31}\text{-}0} \right) \\ {{{\left( {D^{{a{\# 1}},1,1} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 1}},{n - 1},1} + D^{{a{\# 1}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 1}},1} + D^{{b{\# 1}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 31}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 2}},{n - 1},1} + D^{{a{\# 2}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 2}},1} + D^{{b{\# 2}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 31}\text{-}2} \right) \\ {{{\left( {D^{{a{\# 3}},1,1} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 3}},2,1} + D^{{a{\# 3}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 3}},{n - 1},1} + D^{{a{\# 3}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 3}},1} + D^{{b{\# 3}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 31}\text{-}3} \right) \\ {{{\left( {D^{{a{\# 4}},1,1} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 4}},2,1} + D^{{a{\# 4}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 4}},{n - 1},1} + D^{{a{\# 4}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 4}},1} + D^{{b{\# 4}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 31}\text{-}4} \right) \\ {{{\left( {D^{{a{\# 5}},1,1} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 5}},2,1} + D^{{a{\# 5}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 5}},{n - 1},1} + D^{{a{\# 5}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 5}},1} + D^{{b{\# 5}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 31}\text{-}5} \right) \end{matrix}$

Here, a case is considered where v_(p)=k (k=1, 2, . . . , n−1) and w are set to three. Three is a divisor of a time-varying period of six.

FIG. 11 shows a tree of check nodes and variable nodes when only information X₁ is focused upon when it is assumed that v_(p=1) and w are set to three and (a_(#0,1,1)%6=a_(#1,1,1)%6=a_(#2,1,1)%6=a_(#3,1,1)%6=a_(#4,1,1)%6=a_(#5,1,1)%6=3).

The parity check polynomial of Math. 31-q is termed check equation #q. In FIG. 11, a tree is drawn from check equation #0. In FIG. 11, the symbols ∘ (single circle) and ⊚ (double circle) represent variable nodes, and the symbol □ (square) represents a check node. The symbol ∘ (single circle) represents a variable node relating to X₁(D) and the symbol ⊚ (double circle) represents a variable node relating to D^(a#q,1,1)X₁(D). Furthermore, the symbol □ (square) described as #Y (Y=0, 1, 2, 3, 4, 5) means a check node corresponding to a parity check polynomial of Math. 31-Y.

In FIG. 11, values that do not satisfy Condition #2-1, that is, v_(p=1), v_(p=2), v_(p=3), v_(p=4), . . . , v_(p=k), . . . , v_(p=n−2), v_(p=n−1) (k=1, 2, . . . , n−1) and w are set to a divisor other than one among divisors of time-varying period of six (w=3).

In this case, as shown in FIG. 11, #Y only have limited values such as zero or three at check nodes. That is, even if the time-varying period is increased, belief is propagated only from a specific parity check polynomial, which means that the effect of having increased the time-varying period is not achieved.

In other words, the condition for #Y to have only limited values is to set v_(p=1), v_(p=2), v_(p=3), v_(p=4), . . . , v_(p=k), . . . , v_(p=n−2), v_(p=n−1) (k=1, 2, . . . , n−1) and w to a divisor other than one among divisors of a time-varying period of six.

By contrast, FIG. 12 shows a tree when v_(p=k) (k=1, 2, . . . , n−1) and w are set to one in the parity check polynomial. When v_(p=k) (k=1, 2, . . . , n−1) and w are set to one, the condition of Condition #2-1 is satisfied.

As shown in FIG. 12, when the condition of Condition #2-1 is satisfied, #Y takes all values from zero to five at check nodes. That is, when the condition of Condition #2-1 is satisfied, belief is propagated by all parity check polynomials corresponding to the values of #Y. As a result, even when the time-varying period is increased, belief is propagated from a wide range and the effect of having increased the time-varying period can be achieved. That is, it is clear that Condition #2-1 is an important condition to achieve the effect of having increased the time-varying period. Similarly, Condition #2-2 becomes an important condition to achieve the effect of having increased the time-varying period.

[Time-Varying Period of Seven]

When the above description is taken into consideration, the time-varying period being a prime number is an important condition to achieve the effect of having increased the time-varying period. This is described in detail, below.

First, consider Math. 32-0 through 32-6 as parity check polynomials (that satisfy 0) of an LDPC-CC having a coding rate of (n−1)/n (n is an integer equal to or greater than two) and a time-varying period of seven.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 32} \right\rbrack & \; \\ {{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 0}},{n - 1},1} + D^{{a{\# 0}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 0}},1} + D^{{b{\# 0}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 32}\text{-}0} \right) \\ {{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 1}},{n - 1},1} + D^{{a{\# 1}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 1}},1} + D^{{b{\# 1}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 32}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 2}},{n - 1},1} + D^{{a{\# 2}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 2}},1} + D^{{b{\# 2}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 32}\text{-}2} \right) \\ {{{\left( {D^{{a{\# 3}},1,1} + D^{{a{\# 3}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 3}},2,1} + D^{{a{\# 3}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 3}},{n - 1},1} + D^{{a{\# 3}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 3}},1} + D^{{b{\# 3}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 32}\text{-}3} \right) \\ {{{\left( {D^{{a{\# 4}},1,1} + D^{{a{\# 4}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 4}},2,1} + D^{{a{\# 4}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 4}},{n - 1},1} + D^{{a{\# 4}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 4}},1} + D^{{b{\# 4}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 32}\text{-}4} \right) \\ {{{\left( {D^{{a{\# 5}},1,1} + D^{{a{\# 5}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 5}},2,1} + D^{{a{\# 5}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 5}},{n - 1},1} + D^{{a{\# 5}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 5}},1} + D^{{b{\# 5}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 32}\text{-}5} \right) \\ {{{\left( {D^{{a{\# 6}},1,1} + D^{{a{\# 6}},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 6}},2,1} + D^{{a{\# 6}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 6}},{n - 1},1} + D^{{a{\# 6}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 6}},1} + D^{{b{\# 6}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 32}\text{-}6} \right) \end{matrix}$

In Math. 32-q, it is assumed that a_(#q,p,1) and a_(#q,p,2) are natural numbers equal to or greater than one, and a_(#q,p,1)≠a_(#q,p,2) holds true. Furthermore, it is assumed that b_(#q,1) and b_(#q,2) are natural numbers equal to or greater than one, and b_(#q,1)≠b_(#q,2) holds true (q=0, 1, 2, 3, 4, 5, 6; p=1,2, . . . , n−1).

In an LDPC-CC having a time-varying period of seven and a coding rate of (n−1)/n (where n is an integer equal to or greater than two), the parity bit and information bits at point in time i are represented by Pi and X_(i,1), X_(i,2), . . . , X_(i,n−1) respectively. If i%7=k (where k=0, 1, 2, 3, 4, 5, 6) is assumed at this time, the parity check polynomial of Math. 32-(k) holds true.

For example, if i=8, i%7=1 (k=1), Math. 33 holds true.

[Math.  33] $\begin{matrix} {{{\left( {D^{{a\# \; 1},1,1} + D^{{a\# \; 1},1,2} + 1} \right)X_{8,1}} + {\left( {D^{{a\# \; 1},2,1} + D^{{a\# \; 1},2,2} + 1} \right)X_{8,2}} + \cdots + {\left( {D^{{a\# \; 1},{n - 1},1} + D^{{a\# \; 1},{n - 1},2} + 1} \right)X_{8,{n - 1}}} + {\left( {D^{{b\# \; 1},1} + D^{{b\# \; 1},2} + 1} \right)P_{8}}} = 0} & \left( {{Math}.\mspace{14mu} 33} \right) \end{matrix}$

Furthermore, when the sub-matrix (vector) of Math. 32-g is assumed to be H_(g), the parity check matrix can be created using the method described in [LDPC-CC based on parity check polynomial]. Here, the 0th sub-matrix, first sub-matrix, second sub-matrix, third sub-matrix, fourth sub-matrix, fifth sub-matrix and sixth sub-matrix are represented as shown in Math. 34-0 through math. 34-6.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 34} \right\rbrack & \; \\ {H_{0} = \left\{ {H_{0}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{{Math}.\mspace{14mu} 34}\text{-}0} \right) \\ {H_{1} = \left\{ {H_{1}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{{Math}.\mspace{14mu} 34}\text{-}1} \right) \\ {H_{2} = \left\{ {H_{2}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{{Math}.\mspace{14mu} 34}\text{-}2} \right) \\ {H_{3} = \left\{ {H_{3}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{{Math}.\mspace{14mu} 34}\text{-}3} \right) \\ {H_{4} = \left\{ {H_{4}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{{Math}.\mspace{14mu} 34}\text{-}4} \right) \\ {H_{5} = \left\{ {H_{5}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{{Math}.\mspace{14mu} 34}\text{-}5} \right) \\ {H_{6} = \left\{ {H_{6}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{{Math}.\mspace{14mu} 34}\text{-}6} \right) \end{matrix}$

In Math. 34-0 through Math. 34-6, n continuous ones correspond to the terms of X₁(D), X₂(D), . . . , X_(n−1)(D), and P(D) in each of Math. 32-0 through Math. 32-6.

Here, parity check matrix H can be represented as shown in FIG. 13. As shown in FIG. 13, a configuration is employed in which a sub-matrix is shifted n columns to the right between an ith row and (i+1)th row in parity check matrix H (see FIG. 13). When transmission vector u is assumed to be u=(X_(1,0), X_(2,0), . . . , X_(n−1,0), P₀, X_(1,1), X_(2,1), . . . , X_(n−1,1), P₁, . . . , X_(1,k), X_(2,k), . . . , X_(n−1,k), P_(k), . . . )^(T), Hu=0 holds true.

Here, the condition for the parity check polynomials in Math. 32-0 through Math. 32-6 to achieve high error correction capability is as follows as in the case of the time-varying period of six. In the following conditions, % means a modulo, and for example, α%7 represents a remainder after dividing α by seven.

<Condition #1-1′>

a_(#0, 1, 1)%7 = a_(#1, 1, 1)%7 = a_(#2, 1, 1)%7 = a_(#3, 1, 1)%7 = a_(#4, 1, 1)%7 = a_(#5, 1, 1)%7 = a_(#6, 1, 1)%7 = v_(p = 1)  (v_(p = 1):fixed-value) a_(#0, 2, 1)%7 = a_(#1, 2, 1)%7 = a_(#2, 2, 1)%7 = a_(#3, 2, 1)%7 = a_(#4, 2, 1)%7 = a_(#5, 2, 1)%7 = a_(#6, 2, 1)%7 = v_(p = 2)  (v_(p = 2):fixed-value) a_(#0, 3, 1)%7 = a_(#1, 3, 1)%7 = a_(#2, 3, 1)%7 = a_(#3, 3, 1)%7 = a_(#4, 3, 1)%7 = a_(#5, 3, 1)%7 = a_(#6, 3, 1)%7 = v_(p = 3)  (v_(p = 3):fixed-value) a_(#0, 4, 1)%7 = a_(#1, 4, 1)%7 = a_(#2, 4, 1)%7 = a_(#3, 4, 1)%7 = a_(#4, 4, 1)%7 = a_(#5, 4, 1)%7 = a_(#6, 4, 1)%7 = v_(p = 4)  (v_(p = 4):fixed-value) ⋮ a_(#0, k, 1)%7 = a_(#1, k, 1)%7 = a_(#2, k, 1)%7 = a_(#3, k, 1)%7 = a_(#4, k, 1)%7 = a_(#5, k, 1)%7 = a_(#6, k, 1)%7 = v_(p = k)  (v_(p = k):fixed-value)  (therefore, k = 1, 2, …, n − 1) ⋮ a_(#0, n − 2, 1)%7 = a_(#1, n − 2, 1)%7 = a_(#2, n − 2, 1)%7 = a_(#3, n − 2, 1)%7 = a_(#4, n − 2, 1)%7 = a_(#5, n − 2, 1)%7 = a_(#6, n − 2, 1)%7 = v_(p = n − 2)  (v_(p = n − 2):fixed-value) a_(#0, n − 1, 1)%7 = a_(#1, n − 1, 1)%7 = a_(#2, n − 1, 1)%7 = a_(#3, n − 1, 1)%7 = a_(#4, n − 1, 1)%7 = a_(#5, n − 1, 1)%7 = a_(#6, n − 1, 1)%7 = v_(p = n − 1)  (v_(p = n − 1):fixed-value)  and b_(#0, 1)%7 = b_(#1, 1)%7 = b_(#2, 1)%7 = b_(#3, 1)%7 = b_(#4, 1)%7 = b_(#5, 1)%7 = b_(#6, 1)%7 = w  (w:fixed-value)

<Condition #1-2′>

a_(#0, 1, 2)%7 = a_(#1, 1, 2)%7 = a_(#2, 1, 2)%7 = a_(#3, 1, 2)%7 = a_(#4, 1, 2)%7 = a_(#5, 1, 2)%7 = a_(#6, 1, 2)%7 = y_(p = 1)  (y_(p = 1):fixed-value) a_(#0, 2, 2)%7 = a_(#1, 2, 2)%7 = a_(#2, 2, 2)%7 = a_(#3, 2, 2)%7 = a_(#4, 2, 2)%7 = a_(#5, 2, 2)%7 = a_(#6, 2, 2)%7 = y_(p = 2)  (y_(p = 2):fixed-value) a_(#0, 3, 2)%7 = a_(#1, 3, 2)%7 = a_(#2, 3, 2)%7 = a_(#3, 3, 2)%7 = a_(#4, 3, 2)%7 = a_(#5, 3, 2)%7 = a_(#6, 3, 2)%7 = y_(p = 3)  (y_(p = 3):fixed-value) a_(#0, 4, 2)%7 = a_(#1, 4, 2)%7 = a_(#2, 4, 2)%7 = a_(#3, 4, 2)%7 = a_(#4, 4, 2)%7 = a_(#5, 4, 2)%7 = a_(#6, 4, 2)%7 = y_(p = 4)  (y_(p = 4):fixed-value) ⋮ a_(#0, k, 2)%7 = a_(#1, k, 2)%7 = a_(#2, k, 2)%7 = a_(#3, k, 2)%7 = a_(#4, k, 2)%7 = a_(#5, k, 2)%7 = a_(#6, k, 2)%7 = y_(p = k)  (y_(p = k):fixed-value)  (therefore, k = 1, 2, …, n − 1) ⋮ a_(#0, n − 2, 2)%7 = a_(#1, n − 2, 2)%7 = a_(#2, n − 2, 2)%7 = a_(#3, n − 2, 2)%7 = a_(#4, n − 2, 2)%7 = a_(#5, n − 2, 2)%7 = a_(#6, n − 2, 2)%7 = y_(p = n − 2)  (y_(p = n − 2):fixed-value) a_(#0, n − 1, 2)%7 = a_(#1, n − 1, 2)%7 = a_(#2, n − 1, 2)%7 = a_(#3, n − 1, 2)%7 = a_(#4, n − 1, 2)%7 = a_(#5, n − 1, 2)%7 = a_(#6, n − 1, 2)%7 = y_(p = n − 1)  (y_(p = n − 1):fixed-value)  and b_(#0, 2)%7 = b_(#1, 2)%7 = b_(#2, 2)%7 = b_(#3, 2)%7 = b_(#4, 2)%7 = b_(#5, 2)%7 = b_(#6, 2)%7 = z  (z:fixed-value)

By designating Condition #1-1′ and Condition #1-2′ constraint conditions, the LDPC-CC that satisfies the constraint conditions becomes a regular LDPC code, and can thereby achieve high error correction capability.

In the case of a time-varying period of six, achieving high error correction capability further requires Condition #2-1 and Condition #2-2, or Condition #2-1, or Condition #2-2. By contrast, when the time-varying period is a prime number as in the case of a time-varying period of seven, the condition corresponding to Condition #2-1 and Condition #2-2, or Condition #2-1, or Condition #2-2 required in the case of the time-varying period of six, is unnecessary.

That is to say,

in Condition #1-1′, values of v_(p=1), v_(p=2), v_(p=3), v_(p=4), . . . , v_(p=k), . . . , v_(p=n−2), v_(p=n−1) (k=1, 2, . . . , n−1) and w may be one of values 0, 1, 2, 3, 4, 5 and 6.

Also,

in Condition #1-2′, values of y_(p=1), y_(p=2), y_(p=3), y_(p=4), . . . , y_(p=k), . . . , y_(p=n−2), y_(p=n−1) (k=1, 2, . . . , n−1) and z may be one of values 0, 1, 2, 3, 4, 5, and 6.

The reason is described below.

For simplicity of explanation, a case is considered where X₁(D) in parity check polynomials 32-0 to 32-6 of an LDPC-CC having a time-varying period of seven and a coding rate of (n−1)/n based on parity check polynomials has two terms. In this case, the parity check polynomials are represented as shown in Math. 35-0 through Math. 35-6.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 35} \right\rbrack & \; \\ {{{\left( {D^{{a{\# 0}},1,1} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 0}},{n - 1},1} + D^{{a{\# 0}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 0}},1} + D^{{b{\# 0}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 35}\text{-}0} \right) \\ {{{\left( {D^{{a{\# 1}},1,1} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 1}},{n - 1},1} + D^{{a{\# 1}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 1}},1} + D^{{b{\# 1}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 35}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 2}},{n - 1},1} + D^{{a{\# 2}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 2}},1} + D^{{b{\# 2}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 35}\text{-}2} \right) \\ {{{\left( {D^{{a{\# 3}},1,1} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 3}},2,1} + D^{{a{\# 3}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 3}},{n - 1},1} + D^{{a{\# 3}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 3}},1} + D^{{b{\# 3}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 35}\text{-}3} \right) \\ {{{\left( {D^{{a{\# 4}},1,1} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 4}},2,1} + D^{{a{\# 4}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 4}},{n - 1},1} + D^{{a{\# 4}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 4}},1} + D^{{b{\# 4}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 35}\text{-}4} \right) \\ {{{\left( {D^{{a{\# 5}},1,1} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 5}},2,1} + D^{{a{\# 5}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 5}},{n - 1},1} + D^{{a{\# 5}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 5}},1} + D^{{b{\# 5}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 35}\text{-}5} \right) \\ {{{\left( {D^{{a{\# 6}},1,1} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 6}},2,1} + D^{{a{\# 6}},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a{\# 6}},{n - 1},1} + D^{{a{\# 6}},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 6}},1} + D^{{b{\# 6}},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 35}\text{-}6} \right) \end{matrix}$

Here, a case is considered where v_(p=k) (k=1, 2, . . . , n−1) and w are set to two.

FIG. 14 shows a tree of check nodes and variable nodes when only information X₁ is focused upon when v_(p=1) and w are set to two and a_(#0,1,1)%7=a_(#1,1,1)%7=a_(#2,1,1)%7=a_(#3,1,1)%7=a_(#4,1,1)%7=a_(#5,1,1)%7=a_(#6,1,1)%7=2.

The parity check polynomial of Math. 35-q is termed check equation #q. In FIG. 14, a tree is drawn from check equation #0. In FIG. 14, the symbols ∘ (single circle) and ⊚ (double circle) represent variable nodes, and the symbol □ (square) represents a check node. The symbol ∘ (single circle) represents a variable node relating to X₁(D) and the symbol ⊚ (double circle) represents a variable node relating to D^(a#q,1,1)X₁(D). Furthermore, the symbol □ (square) described as #Y (Y=0, 1, 2, 3, 4, 5, 6) means a check node corresponding to a parity check polynomial of Math. 35-Y.

In the case of a time-varying period of six, for example, as shown in FIG. 11, there may be cases where #Y only has a limited value and check nodes are only connected to limited parity check polynomials. By contrast, when the time-varying period is seven (a prime number) such as a time-varying period of seven, as shown in FIG. 14, #Y have all values from zero to six and check nodes are connected to all parity check polynomials. Thus, belief is propagated by all parity check polynomials corresponding to the values of #Y. As a result, even when the time-varying period is increased, belief is propagated from a wide range and it is possible to achieve the effect of having increased the time-varying period. Although FIG. 14 shows the tree when a_(#q,1,1)%7 (q=0, 1, 2, 3, 4, 5, 6) is set to two, check nodes can be connected to all the applicable parity check polynomials if a_(#q,1,1)%7 is set to any value other than zero.

Thus, it is clear that if the time-varying period is set to a prime number in this way, constraint conditions relating to parameter settings for achieving high error correction capability are drastically relaxed compared to a case where the time-varying period is not a prime number. When the constraint conditions are relaxed, adding another constraint condition enables higher error correction capability to be achieved. Such a code configuration method is described in detail below.

[Time-Varying Period of q (q is a Prime Number Greater than Three): Math. 36 ]

First, a case will be considered where a gth (g=0, 1, . . . , q−1) parity check polynomial of a coding rate of (n−1)/n and a time-varying period of q (q is a prime number greater than three) is represented as shown in Math. 36.

[Math.  36] $\begin{matrix} {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 36} \right) \end{matrix}$

In Math. 36, it is also assumed that a_(#g,p,1) and a_(#g,p,2) are natural numbers equal to or greater than one and that a_(#g,p,1)≠a_(#g,p,2) holds true. Furthermore, it is also assumed that b_(#g,1) and b_(#g,2) are natural numbers equal to or greater than one and that b_(#g,1)≠b_(#g,2) holds true (g=0, 1, 2, . . . , q−2, q−1; p=1, 2, . . . , n−1).

In the same way as the above description, Condition #3-1 and Condition #3-2 described below are one of important requirements for an LDPC-CC to achieve high error correction capability. In the following conditions, % means a modulo, and for example, α%q represents a remainder after dividing α by q.

a_(#0, 1, 1)%q = a_(#1, 1, 1)%q = a_(#2, 1, 1)%q = a_(#3, 1, 1)%q = … = a_(#g, 1, 1)%q = … = a_(#q − 2, 1, 1)%q = a_(#q − 1, 1, 1)%q = v_(p = 1)  (v_(p = 1):fixed-value) a_(#0, 2, 1)%q = a_(#1, 2, 1)%q = a_(#2, 2, 1)%q = a_(#3, 2, 1)%q = … = a_(#g, 2, 1)%q = … = a_(#q − 2, 2, 1)%q = a_(#q − 1, 2, 1)%q = v_(p = 2)  (v_(p = 2):fixed-value) a_(#0, 3, 1)%q = a_(#1, 3, 1)%q = a_(#2, 3, 1)%q = a_(#3, 3, 1)%q = … = a_(#g, 3, 1)%q = … = a_(#q − 2, 3, 1)%q = a_(#q − 1, 3, 1)%q = v_(p = 3)  (v_(p = 3):fixed-value) a_(#0, 4, 1)%q = a_(#1, 4, 1)%q = a_(#2, 4, 1)%q = a_(#3, 4, 1)%q = … = a_(#g, 4, 1)%q = … = a_(#q − 2, 4, 1)%q = a_(#q − 1, 4, 1)%q = v_(p = 4)  (v_(p = 4):fixed-value) ⋮ a_(#0, k, 1)%q = a_(#1, k, 1)%q = a_(#2, k, 1)%q = a_(#3, k, 1)%q = … = a_(#g, k, 1)%q = … = a_(#q − 2, k, 1)%q = a_(#q − 1, k, 1)%q = v_(p = k)  (v_(p = k):fixed-value)  (therefore, k = 1, 2, …, n − 1) ⋮ a_(#0, n − 2, 1)%q = a_(#1, n − 2, 1)%q = a_(#2, n − 2, 1)%q = a_(#3, n − 2, 1)%q = … = a_(#g, n − 2, 1)%q = … = a_(#q − 2, n − 2, 1)%q = a_(#q − 1, n − 2, 1)%q = v_(p = n − 2)  (v_(p = n − 2):fixed-value) a_(#0, n − 1, 1)%q = a_(#1, n − 1, 1)%q = a_(#2, n − 1, 1)%q = a_(#3, n − 1, 1)%q = … = a_(#g, n − 1, 1)%q = … = a_(#q − 2, n − 1, 1)%q = a_(#q − 1, n − 1, 1)%q = v_(p = n − 1)  (v_(p = n − 1):fixed-value)  and b_(#0, 1)%q = b_(#1, 1)%q = b_(#2, 1)%q = b_(#3, 1)%q = … = b_(#g, 1)%q = … = b_(#q − 2, 1)%q = b_(#q − 1, 1)%q = w  (w:fixed-value)

<Condition #3-2>

a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)%  q = … = a_(#g, 1, 2)%  q = … = a_(#q − 2, 1, 2)%  q = a_(#q − 1, 1, 2)%  q = y_(p = 1)(y_(p = 1):  fixed-value) a_(#0, 2, 2)%  q = a_(#1, 2, 2)%  q = a_(#2, 2, 2)%  q = a_(#3, 2, 2)%  q = … = a_(#g, 2, 2)%  q = … = a_(#q − 2, 2, 2)%  q = a_(#q − 1, 2, 2)%  q = y_(p = 2)(y_(p = 2):  fixed-value) a_(#0, 3, 2)%  q = a_(#1, 3, 2)%  q = a_(#2, 3, 2)%  q = a_(#3, 3, 2)%  q = … = a_(#g, 3, 2)%  q = … = a_(#q − 2, 3, 2)%  q = a_(#q − 1, 3, 2)%  q = y_(p = 3)(y_(p = 3):  fixed-value) a_(#0, 4, 2)%  q = a_(#1, 4, 2)%  q = a_(#2, 4, 2)%  q = a_(#3, 4, 2)%  q = … = a_(#g, 4, 2)%  q = … = a_(#q − 2, 4, 2)%  q = a_(#q − 1, 4, 2)%  q = y_(p = 4)(y_(p = 4):  fixed-value)   ⋮ a_(#0, k, 2)%  q = a_(#1, k, 2)%  q = a_(#2, k, 2)%  q = a_(#3, k, 2)%  q = … = a_(#g, k, 2)%  q = … = a_(#q − 2, k, 2)%  q = a_(#q − 1, k, 2)%  q = y_(p = k)(y_(p = k):  fixed-value)   (therefore, k = 1, 2, …  n − 1)   ⋮ a_(#0, n − 2, 2)%  q = a_(#1, n − 2, 2)%  q = a_(#2, n − 2, 2)%  q = a_(#3, n − 2, 2)%  q = … = a_(#g, n − 2, 2)%  q = … = a_(#q − 2, n − 2, 2)%  q = a_(#q − 1, n − 2, 2)%  q = y_(p = n − 2)(y_(p = n − 2):  fixed-value) a_(#0, n − 1, 2)%  q = a_(#1, n − 1, 2)%  q = a_(#2, n − 1, 2)%  q = a_(#3, n − 1, 2)%  q = … = a_(#g, n − 1, 2)%  q = … = a_(#q − 2, n − 1, 2)%  q = a_(#q − 1, n − 1, 2)%  q = y_(p = n − 1)(y_(p = n − 1):  fixed-value)   and b_(#0, 2)%  q = b_(#1, 2)%  q = b_(#2, 2)%  q = b_(#3, 2)%  q = … = b_(#g, 2)%  q = … = b_(#q − 2, 2)%  q = b_(q − 1, 2)%  q = z  (z:  fixed-value)

In addition, when Condition #4-1 or Condition #4-2 holds true for a set of (v_(p=1), y_(p=1)), (v_(p=2), y_(p=2)), (v_(p=3), y_(p=3)), . . . (v_(p=k), y_(p=k)), . . . , (v_(p=n−2), y_(p=n−2)), (v_(p=n−1), y_(p=n−1)), and (w, z), high error correction capability can be achieved. Here, k=1, 2, . . . , n−1.

<Condition #4-1>

Consider (v_(p=i), y_(p=i)) and (v_(p=j), y_(p=j)), where it is assumed that i=1, 2, . . . , n−1, j=1, 2, . . . , n−1, and i≠j. At this time, i and j (i≠j) are present where (v_(p=i), y_(p=i)) (v_(p=j), y_(p=j)) and (v_(p=i), y_(p=i)) (y_(p=j), v_(p=j)) hold true.

<Condition #4-2>

Consider (v_(p=i), y_(p=i)) and (w, z), where it is assumed that i=1, 2, . . . , n−1. At this time, i is present where (v_(p=i), y_(p=i))≠(w, z) and (v_(p=i), y_(p=i))≠(z, w) hold true.

Table 7 shows parity check polynomials of an LDPC-CC of a time-varying period of seven and coding rates of ½ and ⅔.

TABLE 7 Code Parity check polynomial LDPC-CC Check polynomial #0: (D⁵⁷⁷ + D⁵⁸⁰ + 1)X₁(D) + (D²⁰⁴ + D⁵⁷⁹ + 1)P(D) = 0 having a Check polynomial #1: (D⁵⁷⁷ + D⁴²⁶ + 1)X₁(D) + (D⁴⁷⁷ + D⁴⁸⁸ + 1)P(D) = 0 time-varying Check polynomial #2: (D⁵⁰⁰ + D³⁷⁰ + 1)X₁(D) + (D⁴⁰⁷ + D⁵⁰² + 1)P(D) = 0 period of seven Check polynomial #3: (D⁵⁶³ + D²³⁰ + 1)X₁(D) + (D¹⁹⁷ + D⁴¹¹ + 1)P(D) = 0 and a coding Check polynomial #4: (D⁵⁴² + D⁷⁶ + 1)X₁(D) + (D¹ + D³³ + 1)P(D) = 0 rate of ½ Check polynomial #5: (D⁵³⁵ + D⁵¹⁷ + 1)X₁(D) + (D³⁴⁴ + D⁷⁵ + 1)P(D) = 0 Check polynomial #6: (D⁵⁷⁰ + D⁵³⁸ + 1)X₁(D) + (D⁵¹² + D⁵⁷² + 1)P(D) = 0 LDPC-CC Check polynomial #0: having a (D⁵⁷⁵ + D⁸¹ + 1)X₁(D) + (D⁵⁹⁷ + D⁴⁰² + 1)X₂(D) + (D⁵⁵⁸ + D¹¹⁸ + 1)P(D) = 0 time-varying Check polynomial #1: period of seven (D⁵²⁶ + D¹⁸⁶ + 1)X₁(D) + (D⁵⁷⁶ + D¹⁵⁷ + 1)X₂(D) + (D⁵⁸⁶ + D¹⁷⁴ + 1)P(D) = 0 and a coding Check polynomial #2: rate of ⅔ (D⁵³³ + D⁴¹⁰ + 1)X₁(D) + (D⁵³⁴ + D⁵³⁵ + 1)X₂(D) + (D⁴¹¹ + D²⁷² + 1)P(D) = 0 Check polynomial #3: (D⁵⁵⁴ + D⁴⁷³ + 1)X₁(D) + (D⁵⁹⁰ + D³⁸ + 1)X₂(D) + (D²⁴³ + D²³⁰ + 1)P(D) = 0 Check polynomial #4: (D⁵⁸² + D¹³⁷ + 1)X₁(D) + (D⁵²⁷ + D⁵⁷⁰ + 1)X₂(D) + (D⁴⁷⁴ + D⁵⁵ + 1)P(D) = 0 Check polynomial #5: (D⁵⁴⁷ + D³⁷⁵ + 1)X₁(D) + (D⁵⁹⁰ + D⁴⁰² + 1)X₂(D) + (D¹¹⁷ + D³⁶³ + 1)P(D) = 0 Check polynomial #6: (D⁵³³ + D⁵⁹² + 1)X₁(D) + (D⁵⁹⁰ + D¹⁵⁰ + 1)X₂(D) + (D⁵²³ + D⁵⁸⁰ + 1)P(D) = 0

In Table 7, with the code of a coding rate of ½,

a_(#0, 1, 1)%7 = a_(#1, 1, 1)%7 = a_(#2, 1, 1)%7 = a_(#3, 1, 1)%7 = a_(#4, 1, 1)%7 = a_(#5, 1, 1)%7 = a_(#6, 1, 1)%7 = v_(p = 1) = 3 b_(#0, 1)%7 = b_(#1, 1)%7 = b_(#2, 1)%7 = b_(#3, 1)%7 = b_(#4, 1)%7 = b_(#5, 1)%7 = b_(#6, 1)%7 = w = 1 a_(#0, 1, 2)%7 = a_(#1, 1, 2)%7 = a_(#2, 1, 2)%7 = a_(#3, 1, 2)%7 = a_(#4, 1, 2)%7 = a_(#5, 1, 2)%7 = a_(#6, 1, 2)%7 = y_(p = 1) = 6 b_(#0, 2)%7 = b_(#1, 2)%7 = b_(#2, 2)%7 = b_(#3, 2)%7 = b_(#4, 2)%7 = b_(#5, 2)%7 = b_(#6, 2)%7 = z = 5  hold.

At this time, since (v_(p=1), y_(p=1))=(3, 6), (w, z)=(1, 5), Condition #4-2 holds true.

Similarly, in Table 7, with the code of a coding rate of ⅔,

a_(#0, 1, 1)%7 = a_(#1, 1, 1)%7 = a_(#2, 1, 1)%7 = a_(#3, 1, 1, 1)%7 = a_(#4, 1, 1)%7 = a_(#5, 1, 1)%7 = a_(#6, 1, 1)%7 = v_(p = 1) = 1 a_(#0, 2, 1)%7 = a_(#1, 2, 1)%7 = a_(#2, 2, 1)%7 = a_(#3, 2, 1)%7 = a_(#4, 2, 1)%7 = a_(#5, 2, 1)%7 = a_(#6, 2, 1)%7 = v_(p = 2) = 2 b_(#0, 1)%7 = b_(#1, 1)%7 = b_(#2, 1)%7 = b_(#3, 1)%7 = b_(#4, 1)%7 = b_(#5, 1)%7 = b_(#6, 1)%7 = w = 5 a_(#0, 1, 2)%7 = a_(#1, 1, 2)%7 = a_(#2, 1, 2)%7 = a_(#3, 1, 2)%7 = a_(#4, 1, 2)%7 = a_(#5, 1, 2)%7 = a_(#6, 1, 2)%7 = y_(p = 1) = 4 a_(#0, 2, 2)%7 = a_(#1, 2, 2)%7 = a_(#2, 2, 2)%7 = a_(#3, 2, 2)%7 = a_(#4, 2, 2)%7 = a_(#5, 2, 2)%7 = a_(#6, 2, 2)%7 = y_(p = 2) = 3 b_(#0, 2)%7 = b_(#1, 2)%7 = b_(#2, 2)%7 = b_(#3, 2)%7 = b_(#4, 2)%7 = b_(#5, 2)%7 = b_(#6, 2)%7 = z = 6  hold.

Here, since (v_(p=1), y_(p=1))=(1, 4), (v_(p=2), y_(p=2))=(2, 3) and (w, z)=(5, 6), Condition #4-1 and Condition #4-2 hold true.

Furthermore, Table 8 shows parity check polynomials of an LDPC-CC having a coding rate of ⅘ when the time-varying period is 11 as an example.

TABLE 8 Code Parity check polynomial LDPC-CC Check polynomial #0: having a (D²⁰⁰ + D⁹ + 1)X₁(D) + (D²³⁴ + D²⁰⁴ + 1)X₂(D) + (D¹⁵⁸ + D⁶³ + 1)X₃(D) + time-varying (D¹⁸¹ + D⁷³ + 1)X₄(D) + (D²³² + D⁹⁸ + 1)P(D) = 0 period of 11 Check polynomial #1: and a coding (D²⁰⁰ + D²⁴⁰ + 1)X₁(D) + (D²²³ + D⁸³ + 1)X₂(D) + (D²³⁵ + D⁵² + 1)X₃(D) + rate of ⅘ (D¹⁵⁹ + D¹²⁸ + 1)X₄(D) + (D¹⁶⁶ + D²³⁰ + 1)P(D) = 0 Check polynomial #2: (D²¹¹ + D⁷⁵ + 1)X₁(D) + (D²³⁴ + D¹⁷¹ + 1)X₂(D) + (D²³⁵ + D⁹⁶ + 1)X₃(D) + (D¹⁵⁹ + D¹²⁸ + 1)X₄(D) + (D¹ + D⁴³ + 1)P(D) = 0 Check polynomial #3: (D¹⁴⁵ + D⁹⁷ + 1)X₁(D) + (D²²³ + D⁶¹ + 1)X₂(D) + (D²³⁵ + D²⁰⁶ + 1)X₃(D) + (D²⁰³ + D⁷³ + 1)X₄(D) + (D⁷⁸ + D¹⁷⁵ + 1)P(D) = 0 Check polynomial #4: (D¹⁴⁵ + D¹¹⁹ + 1)X₁(D) + (D²¹² + D¹⁶⁰ + 1)X₂(D) + (D²⁰² + D³⁰ + 1)X₃(D) + (D²¹⁴ + D¹⁹⁴ + 1)X₄(D) + (D²¹⁰ + D²³⁰ + 1)P(D) = 0 Check polynomial #5: (D¹⁶⁷ + D¹⁷⁴ + 1)X₁(D) + (D²²³ + D⁹⁴ + 1)X₂(D) + (D²³⁵ + D⁸ + 1)X₃(D) + (D²²⁵ + D⁹⁵ + 1)X₄(D) + (D⁵⁶ + D¹⁰ + 1)P(D) = 0 Check polynomial #6: (D²²² + D¹⁸⁵ + 1)X₁(D) + (D²³⁴ + D¹⁹³ + 1)X₂(D) + (D²⁰² + D⁷⁴ + 1)X₃(D) + (D²³⁶ + D²⁰⁵ + 1)X₄(D) + (D¹²² + D¹⁵³ + 1)P(D) = 0 Check polynomial #7: (D¹⁷⁸ + D⁶⁴ + 1)X₁(D) + (D²⁰¹ + D¹⁶⁰ + 1)X₂(D) + (D²²⁴ + D²⁰⁶ + 1)X₃(D) + (D¹⁵⁹ + D⁷ + 1)X₄(D) + (D⁴⁵ + D¹⁴² + 1)P(D) = 0 Check polynomial #8: (D¹⁸⁹ + D⁹ + 1)X₁(D) + (D¹⁷⁹ + D¹⁸² + 1)X₂(D) + (D²³⁵ + D¹¹⁸ + 1)X₃(D) + (D²³⁶ + D¹⁰⁶ + 1)X₄(D) + (D⁷⁸ + D¹³¹ + 1)P(D) = 0 Check polynomial #9: (D²⁰⁰ + D¹⁶³ + 1)X₁(D) + (D²²³ + D⁶¹ + 1)X₂(D) + (D²³⁵ + D⁸ + 1)X₃(D) + (D¹⁴⁸ + D²³⁸ + 1)X₄(D) + (D¹⁷⁷ + D¹³¹ + 1)P(D) = 0 Check polynomial #10: (D²²² + D²¹⁸ + 1)X₁(D) + (D¹⁹⁰ + D²²⁶ + 1)X₂(D) + (D²¹³ + D¹⁹⁵ + 1)X₃(D) + (D²¹⁴ + D¹⁷² + 1)X₄(D) + (D¹ + D⁴³ + 1)P(D) = 0

By making more severe the constraint conditions of Condition #4-1 and Condition #4-2, it is more likely to be able to generate an LDPC-CC of a time-varying period of q (q is a prime number equal to or greater than three) with higher error correction capability. The condition is that Condition #5-1 and Condition #5-2, or Condition #5-1, or Condition #5-2 should hold true.

<Condition #5-1>

Consider (v_(p=i), y_(p=i)) and (v_(p=j), y_(p=j)), where i=1, 2, . . . , n−1, j=1, 2, . . . , n−1, and i≠j. At this time, (v_(p=i), y_(p=i))≠(v_(p=j), y_(p=j)) and (v_(p=i), y_(p=i))≠(y_(p=j), v_(p=j)) hold true for all i and j (i≠j).

<Condition #5-2>

Consider (v_(p=i), y_(p=i)) and (w, z), where i=1, 2, . . . , n−1. Here, (v_(p=i), y_(p=i))≠(w, z) and (v_(p=i), y_(p=1))≠(z, w) hold true for all i.

Furthermore, when v_(p=i)≠y_(p=i) (i=1, 2, . . . , n−1) and w≠z hold true, it is possible to suppress the occurrence of short loops in a Tanner graph.

In addition, when 2n≦q, if (v_(p=i), y_(p=i)) and (z, w) have different values, it is more likely to be able to generate an LDPC-CC of a time-varying period of q (q is a prime number greater than three) with higher error correction capability.

Furthermore, when 2n≧q, if (v_(p=i), y_(p=i)) and (z, w) are set so that all values of 0, 1, 2, . . . , q−1 are present, it is more likely to be able to generate an LDPC-CC having a time-varying period of q (q is a prime number greater than three) with higher error correction capability.

In the above description, Math. 36 having three terms in X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) has been handled as the gth parity check polynomial of an LDPC-CC having a time-varying period of q (q is a prime number greater than three). In Math. 36, it is also likely to be able to achieve high error correction capability when the number of terms of any of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) is one or two. For example, the following method is available as the method of setting the number of terms of X₁(D) to one or two. In the case of a time-varying period of q, there are q parity check polynomials that satisfy zero and the number of terms of X₁(D) is set to one or two for all the q parity check polynomials that satisfy zero. Alternatively, instead of setting the number of terms of X₁(D) to one or two for all the q parity check polynomials that satisfy zero, the number of terms of X₁(D) may be set to one or two for any number (equal to or less than q−1) of parity check polynomials that satisfy zero. The same applies to X₂(D), . . . , X_(n−1)(D) and P(D). In this case, satisfying the above-described condition constitutes an important condition in achieving high error correction capability. However, the condition relating to the deleted terms is unnecessary.

Even when the number of terms of any of X₁(D), X₂(D), . . . , X_(n−1)(D), and P(D) is four or more, it is also likely to be able to achieve high error correction capability. For example, the following method is available as the method of setting the number of terms of X₁(D) to foru or more. In the case of a time-varying period of q, there are q parity check polynomials that satisfy zero, and the number of terms of X₁(D) is set to four or more for all the q parity check polynomials that satisfy zero. Alternatively, instead of setting the number of terms of X₁(D) to four or more for all the q parity check polynomials that satisfy zero, the number of terms of X₁(D) may be set to four or more for any number (equal to or less than q−1) of the parity check polynomials that satisfy 0. The same applies to X₂(D), . . . , X_(n−1)(D), and P(D). At this time, the above-described condition is excluded for the added terms.

Further, Math. 36 is the gth parity check polynomial of an LDPC-CC having a coding rate of (n−1)/n and a time-varying period of q (q is a prime number greater than three). Here, in the case of, for example, a coding rate of ½, the gth parity check polynomial is represented as shown in Math. 37-1. Furthermore, in the case of a coding rate of ⅔, the gth parity check polynomial is represented as shown in Math. 37-2. Furthermore, in the case of a coding rate of ¾, the gth parity check polynomial is represented as shown in Math. 37-3. Furthermore, in the case of a coding rate of ⅘, the gth parity check polynomial is represented as shown in Math. 37-4. Furthermore, in the case of a coding rate of ⅚, the gth parity check polynomial is represented as shown in Math. 37-5.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 37} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 37}\text{-}1} \right) \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 37}\text{-}2} \right) \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + 1} \right){X_{3}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 37}\text{-}3} \right) \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,2} + 1} \right){X_{4}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 37}\text{-}4} \right) \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,2} + 1} \right){X_{4}(D)}} + {\left( {D^{{a\# g},5,1} + D^{{a\# g},5,2} + 1} \right){X_{5}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 37}\text{-}5} \right) \end{matrix}$

[Time-Varying Period of q (q is a Prime Number Greater than Three): Math. 38]

Next, a case is considered where the gth (g=0, 1, . . . , q−1) parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q (q is a prime number greater than three) is represented as shown in Math. 38.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 38} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + D^{{a\# g},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + D^{{a\# g},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + D^{{a\# g},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 38} \right) \end{matrix}$

In Math. 38, it is assumed that a_(#g,p,1), a_(#g,p,2) and a_(#g,p,3) are natural numbers equal to or greater than one and a_(#g,p,1)≠a_(#g,p,2), a_(#g,p,1):a_(#g,p,3) and a_(#g,2)a_(#g,p,3) hold true. Furthermore, it is assumed that b_(#g,1) and b_(#g,2) are natural numbers equal to or greater than one and that b_(#g,1)≠b_(#g,2) holds true (g=0, 1, 2, . . . , q−2, q−1; p=1, 2, . . . , n−1).

In the same way as the above description, Condition #6-1 and Condition #6-2 described below are one of important requirements for an LDPC-CC to achieve high error correction capability. In the following conditions, % means a modulo, and for example, α%q represents a remainder after dividing α by q.

<Condition #6-1>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1)%  q = … = a_(#g, 1, 1)%  q = … = a_(#q − 2, 1, 1)%  q = a_(#q − 1, 1, 1)%  q = v_(p = 1)(v_(p = 1):  fixed-value) a_(#0, 2, 1)%  q = a_(#1, 2, 1)%  q = a_(#2, 2, 1)%  q = a_(#3, 2, 1)%  q = … = a_(#g, 2, 1)%  q = … = a_(#q − 2, 2, 1)%  q = a_(#q − 1, 2, 1)%  q = v_(p = 2)(v_(p = 2):  fixed-value) a_(#0, 3, 1)%  q = a_(#1, 3, 1)%  q = a_(#2, 3, 1)%  q = a_(#3, 3, 1)%  q = … = a_(#g, 3, 1)%  q = … = a_(#q − 2, 3, 1)%  q = a_(#q − 1, 3, 1)%  q = v_(p = 3)(v_(p = 3):  fixed-value) a_(#0, 4, 1)%  q = a_(#1, 4, 1)%  q = a_(#2, 4, 1)%  q = a_(#3, 4, 1)%  q = … = a_(#g, 4, 1)%  q = … = a_(#q − 2, 4, 1)%  q = a_(#q − 1, 4, 1)%  q = v_(p = 4)(v_(p = 4):  fixed-value)   ⋮ a_(#0, k, 1)%  q = a_(#1, k, 1)%  q = a_(#2, k, 1)%  q = a_(#3, k, 1)%  q = … = a_(#g, k, 1)%  q = … = a_(#q − 2, k, 1)%  q = a_(#q − 1, k, 1)%  q = v_(p = k)(v_(p = k):  fixed-value)   (therefore, k = 1, 2, …  , n − 1)   ⋮ a_(#0, n − 2, 1)%  q = a_(#1, n − 2, 1)%  q = a_(#2, n − 2, 1)%  q = a_(#3, n − 2, 1)%  q = … = a_(#g, n − 2, 1)%  q = … = a_(#q − 2, n − 2, 1)%  q = a_(#q − 1, n − 2, 1)%  q = v_(p = n − 2)(v_(p = n − 2) :   fixed-value) a_(#0, n − 1, 1)%  q = a_(#1, n − 1, 1)%  q = a_(#2, n − 1, 1)%  q = a_(#3, n − 1, 1)%  q = … = a_(#g, n − 1, 1)%  q = … = a_(#q − 2, n − 1, 1)%  q = a_(#q − 1, n − 1, 1)%  q = v_(p = n − 1)(v_(p = n − 1) :   fixed-value)   and b_(#0, 1)%  q = b_(#1, 1)%  q = b_(#2, 1)%  q = b_(#3, 1)%  q = … = b_(#g, 1)%  q = … = b_(#q − 2, 1)%  q = b_(#q − 1, 1)%  q = w  (w:  fixed-value)

<Condition #6-2>

a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)%  q = … = a_(#g, 1, 2)%  q = … = a_(#q − 2, 1, 2)%  q = a_(#q − 1, 1, 2)%  q = y_(p = 1)(y_(p = 1):  fixed-value) a_(#0, 2, 2)%  q = a_(#1, 2, 2)%  q = a_(#2, 2, 2)%  q = a_(#3, 2, 2)%  q = … = a_(#g, 2, 2)%  q = … = a_(#q − 2, 2, 2)%  q = a_(#q − 1, 2, 2)%  q = y_(p = 2)(y_(p = 2):  fixed-value) a_(#0, 3, 2)%  q = a_(#1, 3, 2)%  q = a_(#2, 3, 2)%  q = a_(#3, 3, 2)%  q = … = a_(#g, 3, 2)%  q = … = a_(#q − 2, 3, 2)%  q = a_(#q − 1, 3, 2)%  q = y_(p = 3)(y_(p = 3):  fixed-value) a_(#0, 4, 2)%  q = a_(#1, 4, 2)%  q = a_(#2, 4, 2)%  q = a_(#3, 4, 2)%  q = … = a_(#g, 4, 2)%  q = … = a_(#q − 2, 4, 2)%  q = a_(#q − 1, 4, 2)%  q = y_(p = 4)(y_(p = 4):  fixed-value)   ⋮ a_(#0, k, 2)%  q = a_(#1, k, 2)%  q = a_(#2, k, 2)%  q = a_(#3, k, 2)%  q = … = a_(#g, k, 2)%  q = … = a_(#q − 2, k, 2)%  q = a_(#q − 1, k, 2)%  q = y_(p = k)(y_(p = k):  fixed-value)   (therefore, k = 1, 2, …  , n − 1)   ⋮ a_(#0, n − 2, 2)%  q = a_(#1, n − 2, 2)%  q = a_(#2, n − 2, 2)%  q = a_(#3, n − 2, 2)%  q = … = a_(#g, n − 2, 2)%  q = … = a_(#q − 2, n − 2, 2)%  q = a_(#q − 1, n − 2, 2)%  q = y_(p = n − 2)(y_(p = n − 2):  fixed-value) a_(#0, n − 1, 2)%  q = a_(#1, n − 1, 2)%  q = a_(#2, n − 1, 2)%  q = a_(#3, n − 1, 2)%  q = … = a_(#g, n − 1, 2)%  q = … = a_(#q − 2, n − 1, 2)%  q = a_(#q − 1, n − 1, 2)%  q = y_(p = n − 1)(y_(p = n − 1):  fixed-value)   and b_(#0, 2)%  q = b_(#1, 2)%  q = b_(#2, 2)%  q = b_(#3, 2)%  q = … = b_(#g, 2)%  q = … = b_(#q − 2, 2)%  q = b_(#q − 1, 2)%  q = z (z:  fixed-value)

<Condition #6-3>

a_(#0, 1, 3)%  q = a_(#1, 1, 3)%  q = a_(#2, 1, 3)%  q = a_(#3, 1, 3)%  q = … = a_(#g, 1, 3)%  q = … = a_(#q − 2, 1, 3)%  q = a_(#q − 1, 1, 3)%  q = s_(p = 1)(s_(p = 1):  fixed-value) a_(#0, 2, 3)%  q = a_(#1, 2, 3)%  q = a_(#2, 2, 3)%  q = a_(#3, 2, 3)%  q = … = a_(#g, 2, 3)%  q = … = a_(#q − 2, 2, 3)%  q = a_(#q − 1, 2, 3)%  q = s_(p = 2)(s_(p = 2):  fixed-value) a_(#0, 3, 3)%  q = a_(#1, 3, 3)%  q = a_(#2, 3, 3)%  q = a_(#3, 3, 3)%  q = … = a_(#g, 3, 3)%  q = … = a_(#q − 2, 3, 3)%  q = a_(#q − 1, 3, 3)%  q = s_(p = 3)(s_(p = 3):  fixed-value) a_(#0, 4, 3)%  q = a_(#1, 4, 3)%  q = a_(#2, 4, 3)%  q = a_(#3, 4, 3)%  q = … = a_(#g, 4, 3)%  q = … = a_(#q − 2, 4, 3)%  q = a_(#q − 1, 4, 3)%  q = s_(p = 4)(s_(p = 4):  fixed-value)   ⋮ a_(#0, k, 3)%  q = a_(#1, k, 3)%  q = a_(#2, k, 3)%  q = a_(#3, k, 3)%  q = … = a_(#g, k, 3)%  q = … = a_(#q − 2, k, 3)%  q = a_(#q − 1, k, 3)%  q = s_(p = k)(s_(p = k):  fixed-value)   (therefore, k = 1, 2, …, n − 1)   ⋮ a_(#0, n − 2, 3)%  q = a_(#1, n − 2, 3)%  q = a_(#2, n − 2, 3)%  q = a_(#3, n − 2, 3)%  q = … = a_(#g, n − 2, 3)%  q = … = a_(#q − 2, n − 2, 3)%  q = a_(#q − 1, n − 2, 3)%  q = s_(p = n − 2)(s_(p = n − 2):  fixed-value) a_(#0, n − 1, 3)%  q = a_(#1, n − 1, 3)%  q = a_(#2, n − 1, 3)%  q = a_(#3, n − 1, 3)%  q = … = a_(#g, n − 1, 3)%  q = … = a_(#q − 2, n − 1, 3)%  q = a_(#q − 1, n − 1, 3)%  q = s_(p = n − 1)(s_(p = n − 1):  fixed-value)

In addition, consider a set of (v_(p=1), y_(p=1), s_(p=1)), (v_(p=2), y_(p=2), s_(p=2)), (v_(p=3), y_(p=3), s_(p=3)), . . . (v_(p=k), y_(p=k), s_(p=k)), . . . , (v_(p=n−2), y_(p=n−2), s_(p=n−2)), (v_(p=n−1), y_(p=n−1), s_(p=n−1)), and (w, z, 0). Here, it is assumed that k=1, 2, . . . , n−1. When Condition #7-1 or Condition #7-2 holds true, high error correction capability can be achieved.

<Condition #7-1>

Consider (v_(p=i), y_(p=i), s_(p=i)) and (v_(p=j), y_(p=j), s_(p=j)), where i=1, 2, . . . , n−1, j=1, 2, . . . , n−1, and i≠j. At this time, it is assumed that a set of v_(p=i), y_(p=i) and s_(p=i) arranged in descending order is (α_(p=i), β_(p=i), γ_(p=i)), where α_(p=i)≧β_(p=i) and β_(p=i)≧γ_(p=i). Furthermore, it is assumed that a set of v_(p=j), y_(p=j) and s_(p=j) arranged in descending order is (α_(p=j), β_(p=j), γ_(p=j)), where α_(p=j)≧β_(p=j) and β_(p=j)≧γ_(p=j). At this time, there are i and j (i≠j) for which (α_(p=i), β_(p=i), γ_(p=i))≠(α_(p=j), γ_(p=j), γ_(p=j)) holds true.

<Condition #7-2>

Consider (v_(p=i), y_(p=i), s_(p=i)) and (w, z, 0), where it is assumed that i=1, 2, . . . , n−1. At this time, it is assumed that a set of v_(p=i), y_(p=i) and s_(p=i) arranged in descending order is (α_(p=i), β_(p=i), γ_(p=i)), where it is assumed that α_(p=i)≧β_(p=i) and β_(p=i)≧γ_(p=i). Furthermore, it is assumed that a set of w, z and 0 arranged in descending order is (α_(p=i), β_(p=1,0)), where it is assumed that α_(p=i)≧β_(p=i). At this time, there is i for which (v_(p=i), y_(p=i), s_(p=i))≠(w, z, 0) holds true.

By making more severe the constraint conditions of Condition #7-1 and condition #7-2, it is more likely to be able to generate an LDPC-CC of a time-varying period of q (q is a prime number equal to or greater than three) with higher error correction capability. The condition is that Condition #8-1 and Condition #8-2, Condition #8-1, or Condition #8-2 should hold true.

<Condition #8-1>

Consider (v_(p=1), γ_(p=i), s_(p=i)) and (v_(p=j), y_(p=j), s_(p=j)), where it is assumed that i=1, 2, . . . , n−1, j=1, 2, . . . , n−1, and i≠j. At this time, it is assumed that a set of v_(p=i), y_(p=i) and s_(p=i) arranged in descending order is (α_(p=i), β_(p=i), γ_(p=i)), where it is assumed that α_(p=i)≧β_(p=i) and β_(p=i)≧γ_(p=i). Furthermore, it is assumed that a set of v_(p=j), y_(p=j) and s_(p=j) arranged in descending order is (α_(p=i), β_(p=j), γ_(p=j)), where it is assumed that α_(p=j)≧β_(p=j) and β_(p=j)≧γ_(p=j). At this time, (α_(p=i), β_(p=i), y_(p=i))≠(α_(p=j), β_(p=j), γ_(p=j)) holds true for all i and j (i≠j).

<Condition #8-2>

Consider (v_(p=i), y_(p=i), s_(p=i)) and (w, z, 0), where it is assumed that i=1, 2, . . . , n−1. At this time, it is assumed that a set of v_(p−i, γ) _(p=i) and s_(p=i) arranged in descending order is (α_(p=i), β_(p=i), γ_(p=i)), where it is assumed that α_(p=i)≧β_(p=i) and β_(p=i)≧γ_(p=i). Furthermore, it is assumed that a set of w, z and zero arranged in descending order is (a_(p=i), β_(p=i), 0), where it is assumed that α_(p=i)≧β_(p=i). At this time, (v_(p=i), γ_(p=i), s_(p=i)) (w, z, 0) holds true for all i.

Furthermore, when v_(p=i)≠γ_(p=i), v_(p=i)≠s_(p=i), y_(p=i)≠s_(p=i) (i=1, 2, . . . , n−1), and w #z hold true, it is possible to suppress the occurrence of short loops in a Tanner graph.

In the above description, Math. 36 having three terms in X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) has been handled as the gth parity check polynomial of an LDPC-CC having a time-varying period of q (q is a prime number greater than three). In Math. 38, it is also likely to be able to achieve high error correction capability when the number of terms of any of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) is one or two. For example, the following method is available as the method of setting the number of terms of X₁(D) to one or two. In the case of a time-varying period of q, there are q parity check polynomials that satisfy zero and the number of terms of X₁(D) is set to one or two for all the q parity check polynomials that satisfy zero. Alternatively, instead of setting the number of terms of X₁(D) to one or two for all the q parity check polynomials that satisfy zero, the number of terms of X₁(D) may be set to one or two for any number (equal to or less than q−1) of parity check polynomials that satisfy zero. The same applies to X₂(D), . . . , X_(n−1)(D) and P(D). In this case, satisfying the above-described condition constitutes an important condition in achieving high error correction capability. However, the condition relating to the deleted terms is unnecessary.

Furthermore, high error correction capability may also be likely to be achieved even when the number of terms of any of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) is four or more. For example, the following method is available as the method of setting the number of terms of X₁(D) to four or more. In the case of a time-varying period of q, there are q parity check polynomials that satisfy zero and the number of terms of X₁(D) is set to four or more for all the q parity check polynomials that satisfy zero. Alternatively, instead of setting the number of terms of X₁(D) to four or more for all the q parity check polynomials that satisfy zero, the number of terms of X₁(D) may be set to four or more for any number (equal to or less than q−1) of parity check polynomials that satisfy zero. The same applies to X₂(D), . . . , X_(n−1)(D) and P(D). Here, the above-described condition is excluded for the added terms.

[Time-Varying Period of h (h is a Non-Prime Integer Greater than Three): Math. 39]

Next, a code configuration method when time-varying period h is a non-prime integer greater than three will be considered.

First, a case will be considered where the gth (g=0, 1, . . . , h−1) parity check polynomial of a coding rate of (n−1)/n and a time-varying period of h (h is a non-prime integer greater than three) is represented as shown in Math. 39

[Math. 39]

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 39} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right)}{X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 39} \right) \end{matrix}$

In Math. 39, it is assumed that a_(#g),p, and a_(#g,p,2) are natural numbers equal to or greater than one and a_(#g,p,1)≠a_(#g,p,2) holds true. Furthermore, it is assumed that b_(#g,1) and b_(#g,2) are natural numbers equal to or greater than one and b_(#g,1)≠b_(#g,2) holds true (g=0, 1, 2, . . . , h−2, h−1; p=1, 2, . . . , n−1).

In the same way as the above description, Condition #9-1 and Condition #9-2 described below are one of important requirements for an LDPC-CC to achieve high error correction capability. In the following conditions, % means a modulo, and for example, a % h represents a remainder after dividing a by h.

<Condition #9-1>

a_(#0, 1, 1)%  h = a_(#1, 1, 1)%  h = a_(#2, 1, 1)%  h = a_(#3, 1, 1)%  h = … = a_(#g, 1, 1)%  h = … = a_(#h − 2, 1, 1)%  h = a_(#h − 1, 1, 1)%  h = v_(p = 1)(v_(p = 1):  fixed-value) a_(#0, 2, 1)%  h = a_(#1, 2, 1)%  h = a_(#2, 2, 1)%  h = a_(#3, 2, 1)%  h = … = a_(#g, 2, 1)%  h = … = a_(#h − 2, 2, 1)%  h = a_(#h − 1, 2, 1)%  h = v_(p = 2)(v_(p = 2):  fixed-value) a_(#0, 3, 1)%  h = a_(#1, 3, 1)%  h = a_(#2, 3, 1)%  h = a_(#3, 3, 1)%  h = … = a_(#g, 3, 1)%  h = … = a_(#h − 2, 3, 1)%  h = a_(#h − 1, 3, 1)%  h = v_(p = 3)(v_(p = 3):  fixed-value) a_(#0, 4, 1)%  h = a_(#1, 4, 1)%  h = a_(#2, 4, 1)%  h = a_(#3, 4, 1)%  h = … = a_(#g, 4, 1)%  h = … = a_(#h − 2, 4, 1)%  h = a_(#h − 1, 4, 1)%  h = v_(p = 4)(v_(p = 4):  fixed-value)   ⋮ a_(#0, k, 1)%  h = a_(#1, k, 1)%  h = a_(#2, k, 1)%  h = a_(#3, k, 1)%  h = … = a_(#g, k, 1)%  h = … = a_(#h − 2, k, 1)%  h = a_(#h − 1, k, 1)%  h = v_(p = k)(v_(p = k):  fixed-value)   (therefore, k = 1, 2, …  , n − 1)   ⋮ a_(#0, n − 2, 1)%  h = a_(#1, n − 2, 1)%  h = a_(#2, n − 2, 1)%  h = a_(#3, n − 2, 1)%  h = … = a_(#g, n − 2, 1)%  h = … = a_(#h − 2, n − 2, 1)%  h = a_(#h − 1, n − 2, 1)%  h = v_(p = n − 2)(v_(p = n − 2):  fixed-value) a_(#0, n − 1, 1)%  h = a_(#1, n − 1, 1)%  h = a_(#2, n − 1, 1)%  h = a_(#3, n − 1, 1)%  h = … = a_(#g, n − 1, 1)%  h = … = a_(#h − 2, n − 1, 1)%  h = a_(#h − 1, n − 1, 1)%  h = v_(p = n − 1)(v_(p = n − 1):  fixed-value)   and b_(#0, 1)%  h = b_(#1, 1)%  h = b_(#2, 1)%  h = b_(#3, 1)%  h = … = b_(#g, 1)%  h = … = b_(#h − 2, 1)%  h = b_(#h − 1, 1)%  h = w (w:  fixed-value)

<Condition #9-2>

a_(#0, 1, 2)%  h = a_(#1, 1, 2)%  h = a_(#2, 1, 2)%  h = a_(#3, 1, 2)%  h = … = a_(#g, 1, 2)%  h = … = a_(#h − 2, 1, 2)%  h = a_(#h − 1, 1, 2)%  h = y_(p = 1)(y_(p = 1):  fixed-value) a_(#0, 2, 2)%  h = a_(#1, 2, 2)%  h = a_(#2, 2, 2)%  h = a_(#3, 2, 2)%  h = … = a_(#g, 2, 2)%  h = … = a_(#h − 2, 2, 2)%  h = a_(#h − 1, 2, 2)%  h = y_(p = 2)(y_(p = 2):  fixed-value) a_(#0, 3, 2)%  h = a_(#1, 3, 2)%  h = a_(#2, 3, 2)%  h = a_(#3, 3, 2)%  h = … = a_(#g, 3, 2)%  h = … = a_(#h − 2, 3, 2)%  h = a_(#h − 1, 3, 2)%  h = y_(p = 3)(y_(p = 3):  fixed-value) a_(#0, 4, 2)%  h = a_(#1, 4, 2)%  h = a_(#2, 4, 2)%  h = a_(#3, 4, 2)%  h = … = a_(#g, 4, 2)%  h = … = a_(#h − 2, 4, 2)%  h = a_(#h − 1, 4, 2)%  h = y_(p = 4)(y_(p = 4):  fixed-value)   ⋮ a_(#0, k, 2)%  h = a_(#1, k, 2)%  h = a_(#2, k, 2)%  h = a_(#3, k, 2)%  h = … = a_(#g, k, 2)%  h = … = a_(#h − 2, k, 2)%  h = a_(#h − 1, k, 2)%  h = y_(p = k)(y_(p = k):  fixed-value)   (therefore, k = 1, 2, …  , n − 1)   ⋮ a_(#0, n − 2, 2)%  h = a_(#1, n − 2, 2)%  h = a_(#2, n − 2, 2)%  h = a_(#3, n − 2, 2)%  h = … = a_(#g, n − 2, 2)%  h = … = a_(#h − 2, n − 2, 2)%  h = a_(#h − 1, n − 2, 2)%  h = y_(p = n − 2)(y_(p = n − 2):  fixed-value) a_(#0, n − 1, 2)%  h = a_(#1, n − 1, 2)%  h = a_(#2, n − 1, 2)%  h = a_(#3, n − 1, 2)%  h = … = a_(#g, n − 1, 2)%  h = … = a_(#h − 2, n − 1, 2)%  h = a_(#h − 1, n − 1, 2)%  h = y_(p = n − 1)(y_(p = n − 1):  fixed-value)   and b_(#0, 2)%  h = b_(#1, 2)%  h = b_(#2, 2)%  h = b_(#3, 2)%  h = … = b_(#g, 2)%  h = … = b_(#h − 2, 2)%  h = b_(#h − 1, 2)%  h = z (z:  fixed-value)

In addition, as described above, high error correction capability can be achieved by adding Condition #10-1 or Condition #10-2.

<Condition #10-1>

In Condition #9-1, v_(p=1), v_(p=2), v_(p=3), v_(p=4), . . . , v_(p=k), . . . , v_(p=n−2), v_(p=n−1) (k=1, 2, . . . , n−1) and w are set to one and are natural numbers other than divisors of a time-varying period of h.

<Condition #10-2>

In Condition #9-2, y_(p=1), y_(p=2), y_(p=3), y_(p=4), . . . , y_(p=k), y_(p=n−2), y_(p=n−1) (k=1, 2, . . . , n−1) and z are set to one and are natural numbers other than divisors of a time-varying period of h.

Then, consider a set of (v_(p=1), y_(p=1)), (v_(p=2), y_(p=2)), (v_(p=3), y_(p=3)), . . . (v_(p=k), y_(p=k)), . . . , (v_(p=n−2), y_(p=n−2)), (v_(p=n−1), y_(p=n−1)) and (w, z). Here, it is assumed that k=1, 2, . . . , n−1. If Condition #11-1> or Condition #11-2 holds true, higher error correction capability can be achieved.

<Condition #11-1>

Consider (v_(p=i), y_(p=i)) and (v_(p=j), y_(p=j)), where it is assumed that i=1, 2, . . . , n−1, j=1, 2, . . . , n−1 and i≠j. At this time, there are i and j (i≠j) for which (v_(p=1), y_(p=i))≠(v_(p=j), y_(p=j)) and (v_(p=i), y_(p=i))≠#(y_(p=j), v_(p=j)) hold true.

<Condition #11-2>

Consider (v_(p=i), y_(p=i)) and (w, z), where it is assumed that i=1, 2, . . . , n−1. At this time, there is i for which (v_(p=i), y_(p=i))≠(w, z) and (v_(p=i), y_(p=i))≠(z, w) hold true.

Furthermore, by making more severe the constraint conditions of Condition #11-1 and condition #11-2, it is more likely to be able to generate an LDPC-CC of a time-varying period of h (h is a non-prime integer equal to or greater than three) with higher error correction capability. The condition is that Condition #12-1 and Condition #12-2, Condition #12-1, or Condition #12-2 should hold true.

<Condition #12-1>

Consider (v_(p=i), y_(p=i)) and (v_(p=j), y_(p=j)), where it is assumed that i=1, 2, . . . , n−1, j=1, 2, . . . , n−1 and i≠j. At this time, (v_(p=i), y_(p=i))≠(v_(p=j), y_(p=j)) and (v_(p=i), y_(p=i))≠(y_(p=1), v_(p=j)) hold true for all i and j (i≠j).

<Condition #12-2>

Consider (v_(p=i), y_(p=i)) and (w, z), where it is assumed that i=1, 2, . . . , n−1. At this time, (v_(p=i), y_(p=i)) (w, z) and (v_(p=i), y_(p=1)) (z, w) hold true for all i.

Furthermore, when _(p=i)≠y_(p=i) (i=1, 2, . . . , n−1) and w≠z hold true, it is possible to suppress the occurrence of short loops in a Tanner graph.

In the above description, Math. 39 having three terms in X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) has been handled as the gth parity check polynomial of an LDPC-CC having a time-varying period of h (h is a non-prime integer greater than three). In Math. 39, it is also likely to be able to achieve high error correction capability when the number of terms of any of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) is one or two. For example, the following method is available as the method of setting the number of terms of X₁(D) to one or two. In the case of a time-varying period of h, there are h parity check polynomials that satisfy zero and the number of terms of X₁(D) is set to one or two for all the h parity check polynomials that satisfy zero. Alternatively, instead of setting the number of terms of X₁(D) to one or two for all the h parity check polynomials that satisfy zero, the number of terms of X₁(D) may be set to one or two for any number (equal to or less than h−1) of parity check polynomials that satisfy zero. The same applies to X₂(D), . . . , X_(n−1)(D) and P(D). In this case, satisfying the above-described condition constitutes an important condition in achieving high error correction capability. However, the condition relating to the deleted terms is unnecessary.

Moreover, even when the number of terms of any of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) is four or more, it is also likely to be able to achieve high error correction capability. For example, the following method is available as the method of setting the number of terms of X₁(D) to four or more. In the case of a time-varying period of h, there are h parity check polynomials that satisfy zero, and the number of terms of X₁(D) is set to four or more for all the h parity check polynomials that satisfy zero. Alternatively, instead of setting the number of terms of X₁(D) to four or more for all the h parity check polynomials that satisfy zero, the number of terms of X₁(D) may be set to four or more for any number (equal to or less than h−1) of parity check polynomials that satisfy zero. The same applies to X₂(D), . . . , X_(n−1)(D) and P(D). At this time, the above-described condition is excluded for the added terms.

Also, Math. 39 is the gth parity check polynomial of an LDPC-CC having a coding rate of (n−1)/n and a time-varying period of h (h is a non-prime integer greater than three). Here, in the case of, for example, a coding rate of ½, the gth parity check polynomial is represented as shown in Math. 40-1. Furthermore, in the case of a coding rate of ⅔, the gth parity check polynomial is represented as shown in Math. 40-2. Furthermore, in the case of a coding rate of ¾, the gth parity check polynomial is represented as shown in Math. 40-3. Furthermore, in the case of a coding rate of ⅘, the gth parity check polynomial is represented as shown in Math. 40-4. Furthermore, in the case of a coding rate of ⅚, the gth parity check polynomial is represented as shown in Math. 40-5.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 40} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 40}\text{-}1} \right) \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 40}\text{-}2} \right) \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + 1} \right){X_{3}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 40}\text{-}3} \right) \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,2} + 1} \right){X_{4}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 40}\text{-}4} \right) \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,2} + 1} \right){X_{4}(D)}} + {\left( {D^{{a\# g},5,1} + D^{{a\# g},5,2} + 1} \right){X_{5}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 40}\text{-}5} \right) \end{matrix}$

[Time-Varying Period of h (h is a Non-Prime Integer Greater than Three): Math. 41]

Next, a case is considered where the gth (g=0, 1, . . . , h−1) parity check polynomial (that satisfies zero) having a time-varying period of h (h is a non-prime integer greater than three) is represented as shown in Math. 41.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 41} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + D^{{a\# g},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + D^{{a\# g},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + D^{{a\# g},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 41} \right) \end{matrix}$

In Math. 41, it is assumed that aa_(#g,p,1), a_(#g,p,2) and a_(#g,p,3) are natural numbers equal to or greater than one and that a_(#g,p,1)≠a_(#g,p,2), a_(#g,p,1)≠a_(#g,p,3) and a_(#g,p,2)≠a_(#g,p,3) hold true. Furthermore, it is assumed that b_(#g,1) and b_(#g,2) are natural numbers equal to or greater than one and that b_(#g,1)≠b_(#g,2) holds true (g=0, 1, 2, . . . , h−2, h−1; p=1, 2, . . . , n−1).

In the same way as the above description, Condition #13-1, Condition #13-2, and Condition #13-3 described below are one of important requirements for an LDPC-CC to achieve high error correction capability. In the following conditions, % means a modulo, and for example, a % h represents a remainder after dividing a by h.

<Condition #13-1>

a_(#0, 1, 1)%  h = a_(#1, 1, 1)%  h = a_(#2, 1, 1)%  h = a_(#3, 1, 1)%  h = … = a_(#g, 1, 1)%  h = … = a_(#h − 2, 1, 1)%  h = a_(#h − 1, 1, 1)%  h = v_(p = 1)(v_(p = 1):  fixed-value) a_(#0, 2, 1)%  h = a_(#1, 2, 1)%  h = a_(#2, 2, 1)%  h = a_(#3, 2, 1)%  h = … = a_(#g, 2, 1)%  h = … = a_(#h − 2, 2, 1)%  h = a_(#h − 1, 2, 1)%  h = v_(p = 2)(v_(p = 2):  fixed-value) a_(#0, 3, 1)%  h = a_(#1, 3, 1)%  h = a_(#2, 3, 1)%  h = a_(#3, 3, 1)%  h = … = a_(#g, 3, 1)%  h = … = a_(#h − 2, 3, 1)%  h = a_(#h − 1, 3, 1)%  h = v_(p = 3)(v_(p = 3):  fixed-value) a_(#0, 4, 1)%  h = a_(#1, 4, 1)%  h = a_(#2, 4, 1)%  h = a_(#3, 4, 1)%  h = … = a_(#g, 4, 1)%  h = … = a_(#h − 2, 4, 1)%  h = a_(#h − 1, 4, 1)%  h = v_(p = 4)(v_(p = 4):  fixed-value)      ⋮ a_(#0, k, 1)%  h = a_(#1, k, 1)%  h = a_(#2, k, 1)%  h = a_(#3, k, 1)%  h = … = a_(#g, k, 1)%  h = … = a_(#h − 2, k, 1)%  h = a_(#h − 1, k, 1)%  h = v_(p = k)(v_(p = k):  fixed-value)      (therefore, k = 1, 2, …  , n − 1)      ⋮ a_(#0, n − 2, 1)%  h = a_(#1, n − 2, 1)%  h = a_(#2, n − 2, 1)%  h = a_(#3, n − 2, 1)%  h = … = a_(#g, n − 2, 1)%  h = … = a_(#h − 2, n − 2, 1)%  h = a_(#h − 1, n − 2, 1)%  h = v_(p = n − 2)(v_(p = n − 2):  fixed-value) a_(#0, n − 1, 1)%  h = a_(#1, n − 1, 1)%  h = a_(#2, n − 1, 1)%  h = a_(#3, n − 1, 1)%  h = … = a_(#g, n − 1, 1)%  h = … = a_(#h − 2, n − 1, 1)%  h = a_(#h − 1, n − 1, 1)%  h = v_(p = n − 1)(v_(p = n − 1):  fixed-value)      and b_(#0, 1)%  h = b_(#1, 1)%  h = b_(#2, 1)%  h = b_(#3, 1)%  h = … = b_(#g, 1)%  h = … = b_(#h − 2, 1)%  h = b_(#h − 1, 1)%  h = w  (w:  fixed-value)

<Condition #13-2>

a_(#0, 1, 2)%  h = a_(#1, 1, 2)%  h = a_(#2, 1, 2)%  h = a_(#3, 1, 2)%  h = … = a_(#g, 1, 2)%  h = … = a_(#h − 2, 1, 2)%  h = a_(#h − 1, 1, 2)%  h = y_(p = 1)(y_(p = 1):  fixed-value) a_(#0, 2, 2)%  h = a_(#1, 2, 2)%  h = a_(#2, 2, 2)%  h = a_(#3, 2, 2)%  h = … = a_(#g, 2, 2)%  h = … = a_(#h − 2, 2, 2)%  h = a_(#h − 1, 2, 2)%  h = y_(p = 2)(y_(p = 2):  fixed-value) a_(#0, 3, 2)%  h = a_(#1, 3, 2)%  h = a_(#2, 3, 2)%  h = a_(#3, 3, 2)%  h = … = a_(#g, 3, 2)%  h = … = a_(#h − 2, 3, 2)%  h = a_(#h − 1, 3, 2)%  h = y_(p = 3)(y_(p = 3):  fixed-value) a_(#0, 4, 2)%  h = a_(#1, 4, 2)%  h = a_(#2, 4, 2)%  h = a_(#3, 4, 2)%  h = … = a_(#g, 4, 2)%  h = … = a_(#h − 2, 4, 2)%  h = a_(#h − 1, 4, 2)%  h = y_(p = 4)(y_(p = 4):  fixed-value)      ⋮ a_(#0, k, 2)%  h = a_(#1, k, 2)%  h = a_(#2, k, 2)%  h = a_(#3, k, 2)%  h = … = a_(#g, k, 2)%  h = … = a_(#h − 2, k, 2)%  h = a_(#h − 1, k, 2)%  h = y_(p = k)(y_(p = k):  fixed-value)      (therefore, k = 1, 2, …  , n − 1)      ⋮ a_(#0, n − 2, 2)%  h = a_(#1, n − 2, 2)%  h = a_(#2, n − 2, 2)%  h = a_(#3, n − 2, 2)%  h = … = a_(#g, n − 2, 2)%  h = … = a_(#h − 2, n − 2, 2)%  h = a_(#h − 1, n − 2, 2)%  h = y_(p = n − 2)(y_(p = n − 2):  fixed-value) a_(#0, n − 1, 2)%  h = a_(#1, n − 1, 2)%  h = a_(#2, n − 1, 2)%  h = a_(#3, n − 1, 2)%  h = … = a_(#g, n − 1, 2)%  h = … = a_(#h − 2, n − 1, 2)%  h = a_(#h − 1, n − 1, 2)%  h = y_(p = n − 1)(y_(p = n − 1):  fixed-value)      and b_(#0, 2)%  h = b_(#1, 2)%  h = b_(#2, 2)%  h = b_(#3, 2)%  h = … = b_(#g, 2)%  h = … = b_(#h − 2, 2)%  h = b_(#h − 1, 2)%  h = z  (z:  fixed-value)

<Condition #13-3>

a_(#0, 1, 3)%  h = a_(#1, 1, 3)%  h = a_(#2, 1, 3)%  h = a_(#3, 1, 3)%  h = … = a_(#g, 1, 3)%  h = … = a_(#h − 2, 1, 3)%  h = a_(#h − 1, 1, 3)%  h = s_(p = 1)(s_(p = 1):  fixed-value) a_(#0, 2, 3)%  h = a_(#1, 2, 3)%  h = a_(#2, 2, 3)%  h = a_(#3, 2, 3)%  h = … = a_(#g, 2, 3)%  h = … = a_(#h − 2, 2, 3)%  h = a_(#h − 1, 2, 3)%  h = s_(p = 2)(s_(p = 2):  fixed-value) a_(#0, 3, 3)%  h = a_(#1, 3, 3)%  h = a_(#2, 3, 3)%  h = a_(#3, 3, 3)%  h = … = a_(#g, 3, 3)%  h = … = a_(#h − 2, 3, 3)%  h = a_(#h − 1, 3, 3)%  h = s_(p = 3)(s_(p = 3):  fixed-value) a_(#0, 4, 3)%  h = a_(#1, 4, 3)%  h = a_(#2, 4, 3)%  h = a_(#3, 4, 3)%  h = … = a_(#g, 4, 3)%  h = … = a_(#h − 2, 4, 3)%  h = a_(#h − 1, 4, 3)%  h = s_(p = 4)(s_(p = 4):  fixed-value)   ⋮ a_(#0, k, 3)%  h = a_(#1, k, 3)%  h = a_(#2, k, 3)%  h = a_(#3, k, 3)%  h = … = a_(#g, k, 3)%  h = … = a_(#h − 2, k, 3)%  h = a_(#h − 1, k, 3)%  h = s_(p = k)(s_(p = k):  fixed-value)   (therefore, k = 1, 2, …  , n − 1)   ⋮ a_(#0, n − 2, 3)%  h = a_(#1, n − 2, 3)%  h = a_(#2, n − 2, 3)%  h = a_(#3, n − 2, 3)%  h = … = a_(#g, n − 2, 3)%  h = … = a_(#h − 2, n − 2, 3)%  h = a_(#h − 1, n − 2, 3)%  h = s_(p = n − 2)(s_(p = n − 2):  fixed-value) a_(#0, n − 1, 3)%  h = a_(#1, n − 1, 3)%  h = a_(#2, n − 1, 3)%  h = a_(#3, n − 1, 3)%  h = … = a_(#g, n − 1, 3)%  h = … = a_(#h − 2, n − 1, 3)%  h = a_(#h − 1, n − 1, 3)%  h = s_(p = n − 1)(s_(p = n − 1):  fixed-value)

In addition, consider a set of (v_(p=1), y_(p=1), s_(p=1)), (v_(p=2), y_(p=2), s_(p=2)), (v_(p=3), y_(p=3), s_(p=3)), . . . (v_(p=k), y_(p=k), s_(p=k)), . . . , (v_(p=2), y_(p=n−2), s_(p=n−2)), (v_(p=n−1), y_(p=n−1), s_(p=n−1)) and (w, z, 0). Here, it is assumed that k=1, 2, . . . , n−1. When Condition #14-1 or Condition #14-2 holds true, high error correction capability can be achieved.

<Condition #14-1>

Consider (v_(p=i), y_(p=i), s_(p=i)) and (v_(p=j), y_(p=j), s_(p=j)), where i=1, 2, . . . , n−1, j=1, 2, . . . , n−1, and i≠j. At this time, it is assumed that a set of v_(p=i), y_(p=i), s_(p=i) arranged in descending order is (α_(p=i), β_(p=i), γ_(p=i)), where α_(p=i)≧β_(p=i), β_(p=i), ≧γ_(p=i). Furthermore, it is assumed that a set of v_(p=j), y_(p=j), s_(p=j) arranged in descending order is (α_(p=j), β_(p=j), y_(p=j)), where α_(p=j)≧β_(p=j), β_(p=j)≧γ_(p=j). At this time, there are i and j (i≠j) for which (α_(p=i), β_(p=i), γ_(p=i))≠(α_(p=j), β_(p=j), γ_(p=j)) holds true.

<Condition #14-2>

Consider (v_(p=i), y_(p=i), s_(p=i)) and (w, z, 0), where it is assumed that i=1, 2, . . . , n−1. At this time, it is assumed that a set of v_(p=1), y_(p=i), s_(p=i) arranged in descending order is (α_(p=i), β_(p=i), γ_(p=i)), where it is assumed that α_(p=i)≧β_(p=i) and β_(p=i)≧γ_(p=i). Furthermore, it is assumed that a set of w, z and zero arranged in descending order is (α_(p=i), β_(p=i), 0), where it is assumed that α_(p=i)≧β_(p=i). At this time, there is i for which (v_(p=i), y_(p=i), s_(p=i))≠(w, z, 0) holds true.

Furthermore, by making more severe the constraint conditions of Condition #14-1 and Condition #14-2, it is more likely to be able to generate an LDPC-CC having a time-varying period of h (h is a non-prime integer equal to or greater than three) with higher error correction capability. The condition is that Condition #15-1 and Condition #15-2, or Condition #15-1, or Condition #15-2 should hold true.

<Condition #15-1>

Consider (v_(p=i), y_(p=i), s_(p=i)) and (v_(P=j), y_(p=j), s_(p=j)), where it is assumed that i=1, 2, . . . , n−1, j=1, 2, . . . , n−1, and i≠j. At this time, it is assumed that a set of v_(p=i), y_(p=i), s_(p=i) arranged in descending order is (α_(p=i), β_(p=i), γ_(p=i)), where it is assumed that a_(p=i)≧β_(p=i) and β_(p=i)≧γ_(p=i). Furthermore, it is assumed that a set of v_(p=j), y_(p=j), s_(p=j) arranged in descending order is (α_(p=j), β_(p=j), γ_(p=j)), where α_(p=j)≧β_(p=j) and β_(p=j)≧γ_(p=j). At this time, (α_(p=i), β_(p=i), γ_(p=i))≠(α_(p=j), β_(p=j), γ_(p=j)) holds true for all i and j (i≠j).

<Condition #15-2>

Consider (v_(p=i), y_(p=i), s_(p=i)) and (w, z, 0), where it is assumed that i=1, 2, . . . , n−1. At this time, it is assumed that a set of v_(p=i), y_(p=i), s_(p=i) arranged in descending order is (α_(p=i), β_(p=i), γ_(p=i)), where it is assumed that α_(p=i)≧β_(p=j), and β_(p=i)≧γ_(p=i). Furthermore, it is assumed that a set of w, z and zero arranged in descending order is (α_(p=i), β_(p=i), 0), where it is assumed that α_(p=i)≧β_(p=i). At this time, (v_(=i), y_(p=i), s_(p=i))≠(w, z, 0) holds true for all i.

Furthermore, when v_(p=i)≠y_(p=i), v_(p=i)≠s_(p=i), y_(p=i)≠s_(p=i) (i=1, 2, . . . , n−1), and w≠z hold true, it is possible to suppress the occurrence of short loops in a Tanner graph.

In the above description, Math. 41 having three terms in X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) has been handled as the gth parity check polynomial of an LDPC-CC having a time-varying period of h (h is a non-prime integer greater than three). In Math. 41, it is also likely to be able to achieve high error correction capability when the number of terms of any of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) is one or two. For example, the following method is available as the method of setting the number of terms of X₁(D) to one or two. In the case of a time-varying period of h, there are h parity check polynomials that satisfy zero and the number of terms of X₁(D) is set to one or two for all the h parity check polynomials that satisfy zero. Alternatively, instead of setting the number of terms of X₁(D) to one or two for all the h parity check polynomials that satisfy zero, the number of terms of X₁(D) may be set to one or two for any number (equal to or less than h−1) of parity check polynomials that satisfy zero. The same applies to X₂(D), . . . , X_(n−1)(D) and P(D). In this case, satisfying the above-described condition constitutes an important condition in achieving high error correction capability. However, the condition relating to the deleted terms is unnecessary.

Furthermore, it is likely to be able to achieve high error correction capability also when the number of terms of any of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) is four or more. For example, the following method is available as the method of setting the number of terms of X₁(D) to four or more. In the case of a time-varying period of h, there are h parity check polynomials that satisfy zero and the number of terms of X₁(D) is set to four or more for all the h parity check polynomials that satisfy zero. Alternatively, instead of setting the number of terms of X₁(D) to four or more for all the h parity check polynomials that satisfy zero, the number of terms of X₁(D) may be set to four or more for any number (equal to or less than h−1) of parity check polynomials that satisfy zero. The same applies to X₂(D), . . . , X_(n−1)(D) and P(D). Here, the above-described condition is excluded for the added terms.

As described above, the present embodiment has described an LDPC-CC based on parity check polynomials having a time-varying period greater than three, and more particularly, the code configuration method of an LDPC-CC based on parity check polynomials having a time-varying period of a prime number greater than three. As described in the present embodiment, it is possible to achieve higher error correction capability by forming parity check polynomials and performing encoding of an LDPC-CC based on the parity check polynomials.

Embodiment 2

The present embodiment describes, in detail, an LDPC-CC encoding method and the configuration of an encoder based on the parity check polynomials described in Embodiment 1.

First, consider an LDPC-CC having a coding rate of ½ and a time-varying period of three as an example. Parity check polynomials of a time-varying period of three are provided below.

[Math. 42]

(D ² +D ¹+1)X ₁(D)++(D ³ +D ¹+1)P(D)=0  (Math. 42-0)

(D ³ +D ¹+1)X ₁(D)+(D ² +D ¹+1)P(D)=0  (Math. 42-1)

(D ³ +D ²+1)X ₁(D)+(D ³ +D ²+1)P(D)=0  (Math. 42-2)

At this time, P(D) is obtained as shown below.

[Math. 43]

P(D)=(D ² +D ¹+1)X ₁(D)+(D ³ +D ¹)P(D)  (Math. 43-0)

P(D)=(D ³ +D ¹+1)X ₁(D)+(D ² +D ¹)P(D)  (Math. 43-1)

P(D)=(D ³ +D ²+1)X ₁(D)+(D ³ +D ²)P(D)  (Math. 43-2)

Then, Math. 43-0 through Math. 43-2 are represented as follows:

[Math. 44]

P[i]=X ₁ [i]⊕X ₁ [i−1]⊕X ₁ [i−2]⊕P[i−1]⊕P[i−3]  (Math. 44-0)

P[i]=X ₁ [i]⊕X ₁ [i−1]⊕X ₁ [i−3]⊕P[i−1]⊕P[i−2]  (Math. 44-1)

P[i]=X ₁ [i]⊕X ₁ [i−2]⊕X ₁ [i−3]⊕P[i−2]⊕P[i−3]  (Math. 44-2)

where the symbol 0 represents the exclusive OR operator.

Here, FIG. 15A shows the circuit corresponding to Math. 44-0, FIG. 15B shows the circuit corresponding to Math. 44-1 and FIG. 15C shows the circuit corresponding to Math. 44-2.

At point in time i=3k, the parity bit at point in time i is obtained through the circuit shown in FIG. 15A corresponding to Math. 43-0, that is, Math. 44-0. At point in time i=3k+1, the parity bit at point in time i is obtained through the circuit shown in FIG. 15B corresponding to Math. 43-1, that is, Math. 44-1. At point in time i=3k+2, the parity bit at point in time i is obtained through the circuit shown in FIG. 15C corresponding to Math. 43-2, that is, Math. 44-2. Therefore, the encoder can adopt a configuration similar to that of FIG. 9.

Encoding can be performed also when the time-varying period is other than three and the coding rate is (n−1)/n in the same way as that described above. For example, the gth (g=0, 1, . . . , q−1) parity check polynomial of an LDPC-CC having a time-varying period of q and a coding rate of (n−1)/n is represented as shown in Math. 36, and therefore P(D) is represented as follows, where q is not limited to a prime number.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 45} \right\rbrack} & \; \\ {{P(D)} = {{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2}} \right){P(D)}}}} & \left( {{Math}.\mspace{14mu} 45} \right) \end{matrix}$

When expressed in the same way as Math. 44-0 through Math. 44-2, Math. 45 is represented as follows:

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 46} \right\rbrack} & \; \\ {{P\lbrack i\rbrack} = {{X_{1}\lbrack i\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# g},1,1}} \right\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# g},1,2}} \right\rbrack} \oplus {X_{2}\lbrack i\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,1}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,2}} \right\rbrack} \oplus \ldots \oplus {X_{n - 1}\lbrack i\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},1}} \right\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},2}} \right\rbrack} \oplus {P\left\lbrack {i - b_{{\# g},1}} \right\rbrack} \oplus {P\left\lbrack {i - b_{{\# g},2}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 46} \right) \end{matrix}$

where the symbol ⊕ represents the exclusive OR operator.

Here, X_(r)[i](r=1, 2, . . . , n−1) represents an information bit at point in time i and P[i] represents a parity bit at point in time i.

Therefore, when i%q=k at point in time i, the parity bit at point in time i in Math. 45 and Math. 46 can be achieved using a formula resulting from substituting k for g in Math. 45 and Math. 46.

Since the LDPC-CC according to the invention of the present application is a kind of convolutional code, securing belief in decoding of information bits requires termination or tail-biting. The present embodiment considers a case where termination is performed (hereinafter, information-zero-termination, or simply zero-termination).

FIG. 16 is a diagram illustrating information-zero-termination for an LDPC-CC having a coding rate of (n−1)/n. It is assumed that information bits X₁, X₂, . . . , X_(n−1) and parity bit P at point in time i (i=0, 1, 2, 3, . . . , s) are represented by X_(1,i), X_(2,i), . . . , X_(n−1,i), and parity bit P_(i), respectively. As shown in FIG. 16, X_(n−1,s) assumed to be the final bit of the information to transmit.

If the encoder performs encoding only until point in time s and the transmitting apparatus on the encoding side performs transmission only up to P_(s) to the receiving apparatus on the decoding side, receiving quality of information bits of the decoder considerably deteriorates. To solve this problem, encoding is performed assuming information bits from final information bit X_(n−1,s) onward (hereinafter virtual information bits) to be zeroes, and a parity bit (1603) is generated.

To be more specific, as shown in FIG. 16, the encoder performs encoding assuming X_(1,k), X_(2,k), . . . , X_(n−1,k) (k=t1, t2, . . . , tm) to be zeroes and obtains P_(t1), P_(t2), . . . , P_(tm). After transmitting X_(1,s), X_(2,s), . . . , X_(n−1,s), and P_(s) at point in time s, the transmitting apparatus on the encoding side transmits P_(t1), P_(t2), . . . , P_(tm). The decoder performs decoding taking advantage of knowing that virtual information bits are zeroes from point in time s onward.

In termination such as information-zero-termination, for example, LDPC-CC encoder 100 in FIG. 9 performs encoding assuming the initial state of the register is zero. As another interpretation, when encoding is performed from point in time i=0, if, for example, z is less than zero in Math. 46, encoding is performed assuming X₁[z], X₂[z], . . . , X_(n−1)[z], and P[z] to be zeroes.

Assuming a sub-matrix (vector) in Math. 36 to be H_(g), a gth sub-matrix can be represented as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 47} \right\rbrack & \; \\ {H_{g} = \left\{ {H_{g}^{\prime},\underset{n}{\underset{}{11\mspace{14mu} \ldots \mspace{14mu} 1}}} \right\}} & \left( {{Math}.\mspace{14mu} 47} \right) \end{matrix}$

Here, n continuous ones correspond to the terms of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) in Math. 36.

Therefore, when termination is used, the LDPC-CC check matrix having a coding rate of (n−1)/n and a time-varying period of q represented by Math. 36 is represented as shown in FIG. 17. FIG. 17 has a configuration similar to that of FIG. 5. Embodiment 3, which will be described later, describes a detailed configuration of a tail-biting check matrix.

As shown in FIG. 17, a configuration is employed in which a sub-matrix is shifted n columns to the right between an ith row and (i+1)th row in parity check matrix H (see FIG. 17). However, an element to the left of the first column (H′₁ in the example of FIG. 17) is not reflected in the check matrix (see FIG. 5 and FIG. 17). When transmission vector u is assumed to be u=(X_(1,0), X_(2,0), . . . , X_(n−1,0), P₀, X_(1,1), X_(2,1), . . . , X_(n−1,1), P₁, . . . , X_(1,k), X_(2,k), . . . , X_(n−1,k), P_(k), . . . )^(T), Hu=0 holds true.

As described above, the encoder receives information bits X_(r)[i](r=1, 2, . . . , n−1) at point in time i as input, generates parity bit P[i] at point in time i using Math. 46, outputs parity bit [i], and can thereby perform encoding of the LDPC-CC described in Embodiment 1.

Embodiment 3

The present embodiment specifically describes a code configuration method for achieving higher error correction capability when simple tail-biting described in Non-Patent Literature 10 and 11 is performed for an LDPC-CC based on the parity check polynomials described in Embodiment 1.

A case has been described in Embodiment 1 where a gth (g=0, 1, . . . , q−1) parity check polynomial of an LDPC-CC having a time-varying period of q (q is a prime number greater than three) and a coding rate of (n−1)/n is represented as shown in Math. 36. The number of terms of each of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) in Math. 36 is three and, in this case, Embodiment 1 has specifically described the code configuration method (constraint condition) for achieving high error correction capability. Moreover, Embodiment 1 has pointed out that even when the number of terms of one of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) is one or two, high error correction capability may be likely to be achieved.

Here, when the term of P(D) is assumed to be one, the code is a feed forward convolutional code (LDPC-CC), and therefore tail-biting can be performed easily based on Non-Patent Literature 10 and 11. The present embodiment describes this aspect more specifically.

When the term of P(D) of gth (g=0, 1, . . . , q−1) parity check polynomial (36) of an LDPC-CC having a time-varying period of q and a coding rate of (n−1)/n is a one, the gth parity check polynomial is represented as shown in Math. 48.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 48} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 48} \right) \end{matrix}$

According to the present embodiment, time-varying period q is not limited to a prime number equal to or greater than three. However, it is assumed that the constraint condition described in Embodiment 1 will be observed. However, it is assumed that the condition relating to the deleted terms of P(D) will be excluded.

From Math. 48, P(D) is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 49} \right\rbrack} & \; \\ {{P(D)} = {{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + 1} \right){X_{n - 1}(D)}}}} & \left( {{Math}.\mspace{14mu} 49} \right) \end{matrix}$

When represented in the same way as Math. 44-0 through Math. 44-2, Math. 49 is represented as follows:

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 50} \right\rbrack} & \; \\ {{P\lbrack i\rbrack} = {{X_{1}\lbrack i\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# g},1,1}} \right\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# g},1,2}} \right\rbrack} \oplus {X_{2}\lbrack i\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,1}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,2}} \right\rbrack} \oplus \ldots \oplus {X_{n - 1}\lbrack i\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},1}} \right\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},2}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 50} \right) \end{matrix}$

where ⊕ represents the exclusive OR operator.

Therefore, when i%q=k at point in time i, the parity bit at point in time i can be achieved in Math. 49 and Math. 50 using the results of substituting k for g in Math. 49 and Math. 50. However, details of operation when performing tail-biting will be described later.

Next, the configuration and block size of the check matrix when performing tail-biting on the LDPC-CC having a time-varying period of q and a coding rate of (n−1)/n defined in Math. 49 is described in detail.

Non-Patent Literature 12 describes a general formulation of a parity check matrix when performing tail-biting on a time-varying LDPC-CC. Math. 51 is a parity check matrix when performing tail-biting described in Non-Patent Literature 12.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 51} \right\rbrack & \; \\ {H^{T} = \begin{bmatrix} {H_{0}^{T}(0)} & {H_{1}^{T}(1)} & \ldots & {H_{Ms}^{T}\left( M_{s} \right)} & 0 & \; & \ldots & \; & 0 \\ 0 & {H_{0}^{T}(1)} & \ldots & {H_{{Ms} - 1}^{T}\left( M_{s} \right)} & {H_{Ms}^{T}\left( {{Ms} + 1} \right)} & 0 & \ldots & \; & 0 \\ \; & \ddots & \; & \; & \ddots & \; & \; & \ddots & \; \\ {H_{Ms}^{T}(N)} & 0 & \; & \ldots & \; & \; & \; & {H_{{Ms} - 2}^{T}\left( {N - 2} \right)} & {H_{{Ms} - 1}^{T}\left( {N - 1} \right)} \\ {H_{{Ms} - 1}^{T}(N)} & {H_{Ms}^{T}\left( {N + 1} \right)} & 0 & \; & \; & \; & \; & {H_{{Ms} - 3}^{T}\left( {N - 2} \right)} & {H_{{Ms} - 2}^{T}\left( {N - 1} \right)} \\ \vdots & \; & \; & \; & \ldots & \; & \; & \vdots & \vdots \\ {H_{1}^{T}(N)} & {H_{2}^{T}\left( {N + 1} \right)} & \ldots & 0 & \; & \ldots & \; & 0 & {H_{0}^{T}\left( {N - 1} \right)} \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 51} \right) \end{matrix}$

In Math. 51, H represents a parity check matrix and H^(T) represents a syndrome former. Furthermore, H^(T) _(i)(t) (i=0, 1, . . . , M_(s)) represents a sub-matrix of c×(c−b) and M_(s) represents a memory size.

However, Non-Patent Literature 12 does not show any specific code of the parity check matrix nor does it describe any code configuration method (constraint condition) for achieving high error correction capability.

Hereinafter, the code configuration method (constraint condition) is described in detail for achieving high error correction capability even when performing tail-biting on an LDPC-CC having a time-varying period of q and a coding rate of(n−1)/n defined in Math. 49.

To achieve high error correction capability in an LDPC-CC having a time-varying period of q and a coding rate of (n−1)/n defined in Math. 49, the following condition becomes important in parity check matrix H considered necessary in decoding.

<Condition #16>

The number of rows of the parity check matrix is a multiple of q.

Therefore, the number of columns of the parity check matrix is a multiple of n×q. That is, (e.g.) a log-likelihood ratio required in decoding corresponds to bits of a multiple of n×q.

However, the parity check polynomial of an LDPC-CC of a time-varying period of q and a coding rate of (n−1)/n required in above Condition #16 is not limited to Math. 48, but may be a parity check polynomial such as Math. 36 or Math.

38. Furthermore, the number of terms of each of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) in Math. 38 is three, but the number of terms is not limited to three. Furthermore, the time-varying period of q may be any value equal to or greater than two.

Here, Condition #16 will be discussed.

When information bits X₁, X₂, . . . , X_(n−1), and parity bit P at point in time i are represented by X_(1,i), X_(2,i), . . . , X_(n−1,i), and P_(i) respectively, tail-biting is performed as i=1, 2, 3, . . . , q, . . . , q×(N−1)+1, q×(N−1)+2, q×(N−1)+3, . . . , q×N to satisfy Condition #16.

At this time, transmission sequence u becomes u=(X_(1,1), X_(2,1), . . . , X_(n−1,1), P₀, X_(1,2), X_(2,2), . . . , X_(n−1,2), P₂, . . . , X_(1,k), X_(2,k), . . . , X_(n−1,k), P_(k), . . . , X_(1,q×N), X_(2,q×N), . . . , X_(n−1,q×N), P_(q×N))^(T) and Hu=0 holds true. The configuration of the parity check matrix at this point in time will be described using FIG. 18A and FIG. 18B.

Assuming the sub-matrix (vector) of Math. 48 to be H_(g), the gth sub-matrix can be represented as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 52} \right\rbrack & \; \\ {H_{g} = \left\{ {H_{g}^{\prime},\underset{n}{\underset{}{11\mspace{14mu} \ldots \mspace{14mu} 1}}} \right\}} & \left( {{Math}.\mspace{14mu} 52} \right) \end{matrix}$

Here, n continuous ones correspond to the terms of X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D) in Math. 48.

Of the parity check matrix corresponding to transmission sequence u defined above, FIG. 18A shows the parity check matrix in the vicinity of point in time q×N−1 (1803) and point in time q×N (1804). As shown in FIG. 18A, a configuration is employed in which a sub-matrix is shifted n columns to the right between an ith row and (i+1)th row in parity check matrix H (see FIG. 18A).

In FIG. 18A, row 1801 shows a (q×N)th row (last row) of the parity check matrix. When Condition #16 is satisfied, row 1801 corresponds to a (q−1)th parity check polynomial. Furthermore, row 1802 shows a (q×N−1)th row of the parity check matrix. When Condition #16 is satisfied, row 1802 corresponds to a (q−2)-th parity check polynomial.

Furthermore, column group 1804 represents a column group corresponding to point in time q×N. In column group 1804, a transmission sequence is arranged in order of X_(1,q×N), X_(2,q×N), . . . , X_(n−1,q×N), and P_(q×N). Column group 1803 represents a column group corresponding to point in time q×N−1. In column group 1803, a transmission sequence is arranged in order of X_(1,q×N−1), X_(2,q×N−11), . . . , X_(n−1,q×N−1) and P_(q×N−1).

Next, the order of the transmission sequence is changed to u=( . . . , X_(1,q×N−1), X_(2,q×N−1), . . . , X_(n−1,q×N−1), P_(q×N−1), X_(1,q×N), X_(2,q×N), . . . , X_(n−1,q×N), P_(q×N), X_(1,0), X_(2,1), . . . , X_(n−1,1), P₁, X_(1,2), X_(2,2), . . . , X_(n−1,2), P₂, . . . )^(T). Of the parity check matrix corresponding to transmission sequence u, FIG. 18B shows the parity check matrix in the vicinity of point in time q×N−1 (1803), point in time q×N (1804), point in time 1 (1807) and point in time 2 (1808).

As shown in FIG. 18B, a configuration is employed in which a sub-matrix is shifted n columns to the right between an ith row and (i+1)th row in parity check matrix H. Furthermore, as shown in FIG. 18A, when the parity check matrix in the vicinity of point in time q×N−1 (1803) and point in time q×N (1804), column 1805 is a column corresponding to a (q×N×n)th column and column 1806 is a column corresponding to a first column.

Column group 1803 represents a column group corresponding to point in time q×N−1 and column group 1803 is arranged in order of X_(1,q×N−1), X_(2,q×N−1), . . . , X_(n−1,q×N−1), and P_(q×N−1). Column group 1804 represents a column group corresponding to point in time q×N and column group 1804 is arranged in order of X_(1,q×N), X_(2,q×N), . . . , X_(n−1,q×N), and P_(q×N). Column group 1807 represents a column group corresponding to point in time 1 and column group 1807 is arranged in order of X_(1,1), X_(2,1), . . . , X_(n−1,1) and P₁. Column group 1808 represents a column group corresponding to point in time 2 and column group 1808 is arranged in order of X_(1,2), X_(2,2), . . . , X_(n−1,2), and P₂

When the parity check matrix in the vicinity of point in time q×N−1 (1803) or point in time q×N (1804) is represented as shown in FIG. 18A, row 1811 is a row corresponding to a (q×N)th row and row 1812 is a row corresponding to a first row.

At this time, a portion of the parity check matrix shown in FIG. 18B, that is, the portion to the left of column boundary 1813 and below row boundary 1814 constitutes a characteristic portion when tail-biting is performed. It is clear that this characteristic portion has a configuration similar to that of Math. 51.

When the parity check matrix satisfies Condition #16, if the parity check matrix is represented as shown in FIG. 18A, the parity check matrix starts from a row corresponding to the zeroth parity check polynomial that satisfies zero and ends at a row corresponding to the (q−1)th parity check polynomial that satisfies zero. This is important in achieving higher error correction capability.

The time-varying LDPC-CC described in Embodiment 1 is such a code that the number of short cycles (cycles of length) in a Tanner graph is reduced. Embodiment 1 has shown the condition to generate such a code that the number of short cycles in a Tanner graph is reduced. Here, when tail-biting is performed, it is important that the number of rows of the parity check matrix be a multiple of q (Condition #16) to reduce the number of short cycles in a Tanner graph. In this case, if the number of rows of the parity check matrix is a multiple of q, all parity check polynomials of a time-varying period of q are used. Thus, as described in Embodiment 1, by adopting a code in which the number of short cycles in a Tanner graph is reduced for the parity check polynomial, it is possible to reduce the number of short cycles in a Tanner graph also when performing tail-biting. Thus, Condition #16 is an important requirement in reducing the number of short cycles in a Tanner graph also when performing tail-biting.

However, the communication system may require some contrivance to satisfy Condition #16 for a block length (or information length) required in the communication system when performing tail-biting. This will be described by taking an example.

FIG. 19 is an overall diagram of the communication system. The communication system in FIG. 19 has a transmitting device 1910 on the encoding side and a receiving device 1920 on the decoding side.

An encoder 1911 receives information as input, performs encoding, and generates and outputs a transmission sequence. A modulation section 1912 receives the transmission sequence as input, performs predetermined processing such as mapping, quadrature modulation, frequency conversion, and amplification, and outputs a transmission signal. The transmission signal arrives at a receiving section 1921 of the receiving device 1920 via a communication medium (radio, power line, light or the like).

The receiving section 1921 receives a received signal as input, performs processing such as amplification, frequency conversion, quadrature demodulation, channel estimation, and demapping, and outputs a baseband signal and a channel estimation signal.

A log-likelihood ratio generation section 1922 receives the baseband signal and the channel estimation signal as input, generates a log-likelihood ratio in bit units, and outputs a log-likelihood ratio signal.

A decoder 1923 receives the log-likelihood ratio signal as input, performs iterative decoding using BP decoding in particular here, and outputs an estimation transmission sequence and (or) an estimation information sequence.

For example, consider an LDPC-CC having a coding rate of ½ and a time-varying period of 11 as an example. Assuming that tail-biting is performed at this time, the set information length is designated 16384. The information bits are designated X_(1,1), X_(1,2), X_(1,3), . . . , X_(1,16384). If parity bits are determined without any contrivance, P₁, P₂, P₃, . . . , P₁₆₃₈₄ are determined.

However, even when a parity check matrix is created for transmission sequence u=(X_(1,1), P₁, X_(1,2), P₂, . . . , X_(1,16384), P₁₆₃₈₄), Condition #16 is not satisfied. Therefore, X_(1,16385), X_(1,16386), X_(1,16387), X_(1,16388), and X_(1,16389) may be added as the transmission sequence so that encoder 1911 determines P₁₆₃₈₅, P₁₆₃₈₆, P₁₆₃₈₇, P₁₆₃₈₈ and P₁₆₃₈₉.

At this time, the encoder 1911 sets, for example, X_(1,16385)=0, X_(1,16386)=0, X_(1,16387)=0, X_(1,16388)=0 and X_(1,16389)=0, performs encoding and determines P₁₆₃₈₅, P₁₆₃₈₆, P₁₆₃₈₇, P₁₆₃₈₈ and P₁₆₃₈₉. However, if a promise that X_(1,16385)=0, X_(1,16386)=0, X_(1,16387)=0, X_(1,16388)=0 and X_(1,16389)=0 are set is shared between the encoder 1911 and the decoder 1923, X_(1,16385), X_(1,16386), X_(1,16387), X_(1,16388) and X_(1,16389) need not be transmitted.

Therefore, the encoder 1911 receives information sequence=(X_(1,1), X_(i,2), X_(1,3), . . . , X_(1,16384), X_(1,16385), X_(1,16386), X_(1,16387), X_(1,16388), X_(1,16389))=(X_(1,1), X_(1,2), X_(1,3), . . . , X_(1,16384), 0, 0, 0, 0, 0) as input and obtains sequence (X_(1,1), P₁, X_(1,2), P₂, . . . , X_(1,16384), P₁₆₃₈₄, X_(1,16385), P₁₆₃₈₅, X_(1,16386), P₁₆₃₈₆, X_(1,16387), P₁₆₃₈₇, X_(1,16388), P₁₆₃₈₈, X_(1,16389), P₁₆₃₈₉)=(X_(1,1), P₁, X_(1,2), P₂, . . . , X_(1,16384), P₁₆₃₈₄, 0, P₁₆₃₈₅, 0, P₁₆₃₈₆, 0, P₁₆₃₈₇, 0, P₁₆₃₈₈, 0, P₁₆₃₈₉).

The transmitting device 1910 then deletes the zeroes known between the encoder 1911 and the decoder 1923, and transmits (X_(1,1), P₁, X_(1,2), P₂, . . . , X_(1,16384), P₁₆₃₈₄, P₁₆₃₈₅, P₁₆₃₈₆, P₁₆₃₈₇, P₁₆₃₈₈, P₁₆₃₈₉) as a transmission sequence.

The receiving device 1920 obtains, for example, log-likelihood ratios for each transmission sequence as LLR(X_(1,1)), LLR(P₁), LLR(X_(1,2)), LLR(P₂), . . . , LLR(X_(1,16384)), LLR(P₁₆₃₈₄), LLR(P₁₆₃₈₅), LLR(P₁₆₃₈₆), LLR(P₁₆₃₈₇), LLR(P₁₆₃₈₈) and LLR(P₁₆₃₈₉).

The receiving device 1920 then generates log-likelihood ratios LLR(X_(1,16385))=LLR(0), LLR(X_(1,16386))=LLR(0), LLR(X_(1,16387))=LLR(0), LLR(X_(1,16388))=LLR(0) and LLR(X_(1,16389))=LLR(0) of X_(1,16385), X_(1,16386), X_(1,16387), X_(1,16388), and X_(1,16389) of values of zeroes not transmitted from the transmitting device 1910. The receiving device 1920 obtains LLR(X_(1,1)), LLR(P₁), LLR(X_(1,2)), LLR(P₂), . . . , LLR(X_(1,16384)), LLR(P₁₆₃₈₄), LLR(X_(1,16385))=LLR(0), LLR(P₁₆₃₈₅), LLR(X_(11,16386))=LLR(0), LLR(P₁₆₃₈₆), LLR(X_(1,16387))=LLR(0), LLR(P₁₆₃₈₇), LLR(X_(1,16388))=LLR(0), LLR(P₁₆₃₈₈), and LLR(X_(1,16389))=LLR(0), LLR(P₁₆₃₈₉), and thereby performs decoding using these log-likelihood ratios and the parity check matrix of 16389×32778 of an LDPC-CC having a coding rate of ½ and a time-varying period of 11, and thereby obtains an estimation transmission sequence and/or estimation information sequence. As the decoding method, belief propagation such as BP (belief propagation) decoding, min-sum decoding which is an approximation of BP decoding, offset BP decoding, normalized BP decoding, shuffled BP decoding can be used as shown in Non-Patent Literature 4, Non-Patent Literature 5 and Non-Patent Literature 6.

As is clear from this example, when tail-biting is performed in an LDPC-CC having a coding rate of (n−1)/n and a time-varying period of q, the receiving device 1920 performs decoding using such a parity check matrix that satisfies Condition #16. Therefore, this means that the decoder 1923 possesses a parity check matrix of (rows)×(columns)=(q×M)×(q×n×M) as the parity check matrix (M is a natural number).

In the encoder 1911 corresponding to this, the number of information bits necessary for encoding is q×(n−1)×M. Using these information bits, q×M parity bits are obtained.

At this time, if the number of information bits input to the encoder 1911 is smaller than q×(n−1)×M, bits (e.g. zeroes (may also be ones)) known between the transmitting and receiving devices (the encoder 1911 and the decoder 1923) are inserted so that the number of information bits is q×(n−1)×M in the encoder 1911. The encoder 1911 then obtains q×M parity bits. At this time, the transmitting device 1910 transmits information bits excluding the inserted known bits and the parity bits obtained. Here, known bits may be transmitted and q×(n−1)×M information bits and q×M parity bits may always be transmitted, which, however, would cause the transmission rate to deteriorate by an amount corresponding to the known bits transmitted.

Next, an encoding method is described in an LDPC-CC having a coding rate of (n−1)/n and a time-varying period of q defined by the parity check polynomial of Math. 48 when tail-biting is performed. The LDPC-CC having a coding rate of (n−1)/n and a time-varying period of q defined by the parity check polynomial of Math. 48 is a kind of feed forward convolutional code. Therefore, the tail-biting described in Non-Patent Literature 10 and Non-Patent Literature 11 can be performed. Hereinafter, an overview of a procedure for the encoding method when performing tail-biting described in Non-Patent Literature 10 and Non-Patent Literature 11 is described.

The procedure is as shown below.

<Procedure 1>

For example, when the encoder 1911 adopts a configuration similar to that in FIG. 9, the initial value of each register (reference signs are omitted) is assumed to be zero. That is, in Math. 50, assuming g=k when (i−1) %q=k at point in time i (i=1, 2, . . . ), the parity bit a point in time i is determined. When z in X₁[z], X₂[z], . . . , X_(n−1)[z], and P[z] in Math. 50 is less than one, encoding is performed assuming these values are zeroes. The encoder 1911 then determines up to the last parity bit. The state of each register of the encoder 1911 at this time is stored.

<Procedure 2>

In Procedure 1, encoding is performed again to determine parity bits from point in time i=1 from the state of each register stored in the encoder 1911 (therefore, the values obtained in Procedure I are used when z in X₁[z], X₂[z], . . . , X_(n−1)[z], and P[z] in Math. 50 is less than one).

The parity bit and information bits obtained at this time constitute an encoded sequence when tail-biting is performed.

The present embodiment has described an LDPC-CC having a time-varying period of q and a coding rate of (n−1)/n defined by Math. 48 as an example. In Math. 48, the number of terms of X₁(D), X₂(D), . . . and X_(n−1)(D) is three. However, the number of terms is not limited to three, but high error correction capability may also be likely to be achieved even when the number of terms of one of X₁(D), X₂(D), . . . and X_(n−1)(D) in Math. 48 is one or two. For example, the following method is available as the method of setting the number of terms of X₁(D) to one or two. In the case of a time-varying period of q, there are q parity check polynomials that satisfy zero and the number of terms of X₁(D) is set to one or two for all the q parity check polynomials that satisfy zero. Alternatively, instead of setting the number of terms of X₁(D) to one or two for all the q parity check polynomials that satisfy zero, the number of terms of X₁(D) may be set to one or two for any number (equal to or less than q−1) of parity check polynomials that satisfy zero. The same applies to X₂(D), . . . and X_(n−1)(D) as well. In this case, satisfying the condition described in Embodiment 1 constitutes an important condition in achieving high error correction capability. However, the condition relating to the deleted terms is unnecessary.

Furthermore, even when the number of terms of one of X₁(D), X₂(D), . . . and X_(n−1)(D) is four or more, high error correction capability may be likely to be achieved. For example, the following method is available as the method of setting the number of terms of X₁(D) to four or more. In the case of a time-varying period of q, there are q parity check polynomials that satisfy zero and the number of terms of X₁(D) is set to four or more for all the q parity check polynomials that satisfy zero. Alternatively, instead of setting the number of terms of X₁(D) to four or more for all the q parity check polynomials that satisfy zero, the number of terms of X₁(D) may be set to four or more for any number (equal to or less than q−1) of parity check polynomials that satisfy zero. The same applies to X₂(D), . . . and X_(n−1)(D) as well. Here, the above-described condition is excluded for the added terms.

Furthermore, tail-biting according to the present embodiment can also be performed on a code for which a gth (g=0, 1, . . . , q−1) parity check polynomial of an LDPC-CC of a time-varying period of q and a coding rate of (n−1)/n is represented as shown in Math. 53.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 53} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + D^{{a\# g},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + D^{{a\# g},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + D^{{a\# g},{n - 1},3}} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 53} \right) \end{matrix}$

However, it is assumed that the constraint condition described in Embodiment 1 is observed. However, the condition relating to the deleted terms in P(D) will be excluded.

From Math. 53, P(D) is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 54} \right\rbrack} & \; \\ {{P(D)} = {{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + D^{{a\# g},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + D^{{a\# g},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + D^{{a\# g},{n - 1},3}} \right){X_{n - 1}(D)}}}} & \left( {{Math}.\mspace{14mu} 54} \right) \end{matrix}$

When represented in the same way as Math. 44-0 through Math. 44-2, Math. 54 is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 55} \right\rbrack} & \; \\ {{P\lbrack i\rbrack} = {{X_{1}\left\lbrack {i - a_{{\# g},1,1}} \right\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# g},1,2}} \right\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# g},1,3}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,1}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,2}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,3}} \right\rbrack} \oplus \ldots \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},1}} \right\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},2}} \right\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},3}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 55} \right) \end{matrix}$

where the symbol ⊕ represents the exclusive OR operator.

High error correction capability may be likely to be achieved even when the number of terms of one of X₁(D), X₂(D), . . . , and X_(n−1)(D) in Math. 53 is one or two. For example, the following method is available as the method of setting the number of terms of X₁(D) to one or two. In the case of a time-varying period of q, there are q parity check polynomials that satisfy zero, and the number of terms of X₁(D) is set to one or two for all the q parity check polynomials that satisfy zero. Alternatively, instead of setting the number of terms of X₁(D) to one or two for all the q parity check polynomials that satisfy zero, the number of terms of X₁(D) may be set to one or two for any number (equal to or less than q−1) of parity check polynomials that satisfy zero. The same applies to X₂(D), . . . and X_(n−1)(D) as well. In this case, satisfying the condition described in Embodiment 1 constitutes an important condition in achieving high error correction capability. However, the condition relating to the deleted terms is unnecessary.

Furthermore, even when the number of terms of one of X₁(D), X₂(D), . . . and X_(n−1)(D) is four or more, high error correction capability may be likely to be achieved. For example, the following method is available as the method of setting the number of terms of X₁(D) to four or more. In the case of a time-varying period of q, there are q parity check polynomials that satisfy zero and the number of terms of X₁(D) is set to four or more for all the q parity check polynomials that satisfy zero. Alternatively, instead of setting the number of terms of X₁(D) to four or more for all the q parity check polynomials that satisfy zero, the number of terms of X₁(D) may be set to four or more for any number (equal to or less than q−1) of parity check polynomials that satisfy zero. The same applies to X₂(D), . . . and X_(n−1)(D) as well. Here, the above-described condition is excluded for the added terms. Furthermore, the encoded sequence when tail-biting is performed can be achieved using the above-described procedure also for the LDPC-CC defined in Math. 53.

As described above, the encoder 1911 and the decoder 1923 use the parity check matrix of the LDPC-CC described in Embodiment 1 whose number of rows is a multiple of time-varying period q, and can thereby achieve high error correction capability even when simple tail-biting is performed.

Embodiment 4

The present embodiment describes a time-varying LDPC-CC having a coding rate of R=(n−1)/n based on a parity check polynomial again. Information bits of X₁, X₂, . . . and X_(n−1) and parity bit P at point in time j are represented by X_(1,j), X_(2,j), . . . , X_(n−1,j), and P_(j), respectively. Vector u_(j) at point in time j is represented by u_(j)=(X_(1,j), X_(2,j), . . . , X_(n−1,j), P_(j)). Furthermore, the encoded sequence is represented by u=(u₀, u₁, . . . , u_(j), . . . )^(T). Assuming D to be a delay operator, the polynomial of information bits X₁, X₂, . . . , X_(n−1) is represented by X₁(D), X₂(D), . . . , X_(n−1)(D) and the polynomial of parity bit P is represented by P(D). At this time, consider a parity check polynomial that satisfies zero represented as shown in Math. 56.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 56} \right\rbrack} & \; \\ {{{\left( {D^{a_{1,1}} + D^{a_{1,2}} + \ldots + D^{a_{1,{r\; 1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{a_{2,1}} + D^{a_{2,2}} + \ldots + D^{a_{2,{r\; 2}}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{a_{{n - 1},1}} + D^{a_{{n - 1},2}} + \ldots + D^{a_{{n - 1},{r\;}_{n - 1}}} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{b_{1}} + D^{b_{2}} + \ldots + D^{b_{c}} + 1} \right){P(D)}}} = 0} & \left( {{Math}\mspace{14mu} 56} \right) \end{matrix}$

In Math. 56, it is assumed that a_(p,q) (p=1, 2, . . . , n−1; q=1, 2, . . . , r_(p)) and b_(s) (s=1, 2, . . . , e) are natural numbers. Furthermore, a_(p,y)≠a_(p,z) is satisfied for ^(∀)(y, z) of y, z=1, 2, . . . , r_(p), y≠z. Furthermore, b_(y)≠b_(z) is satisfied for ^(∀)(y, z) of y, z=1, 2, . . . , α, y≠z. Here, ∀ is the universal quantifier.

To create an LDPC-CC having a coding rate of R=(n−1)/n and a time-varying period of m, a parity check polynomial based on Math. 56 is provided. At this time, an ith (i=0, 1, . . . , m−1) parity check polynomial is represented as shown in Math. 57.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 57} \right\rbrack} & \; \\ {{{{A_{{X\; 1},i}(D)}{X_{1}(D)}} + {{A_{{X\; 2},i}(D)}{X_{2}(D)}} + \ldots + {{A_{{{X\; n} - 1},i}(D)}{X_{n - 1}(D)}} + {{B_{i}(D)}{P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 57} \right) \end{matrix}$

In Math. 57, maximum orders of D of A_(Xδ,i)(D) (δ=1, 2, . . . , n−1) and B_(i)(D) are represented by Γ_(Xδ,i) and Γ_(P,i), respectively. A maximum value of Γ_(Xδ,i) and Γ_(P,i) is assumed to be Γ_(i). A maximum value of Γ_(i) (i=0, 1, . . . , m−1) is assumed to be F. When encoded sequence u is taken into consideration, using Γ, vector h_(i) corresponding to an ith parity check matrix is represented as shown in Math. 58.

[Math. 58]

h _(i) =[h _(i,Γ) ,h _(i,Γ−1), . . . , h_(i,1) ,h _(i,0])  (Math. 58)

In Math. 58, h_(i,v) (v=0, 1, . . . , Γ) is a vector of 1×n and represented as shown in Math. 59.

[Math. 59]

h _(i,r)=[α_(i,v,X1),α_(i,v,X2), . . . ,α_(i,v,Xn−1),β_(i,v)]  (Math. 59)

This is because the parity check polynomial of Math. 57 has α_(i,v,Xw)D^(v)X_(w)(D) and β_(i,v)D^(v)P(D) (w=1, 2, . . . , n−1, and α_(i,v,Xw), β_(i,v)ε[0,1]). At this time, the parity check polynomial that satisfies zero of Math. 57 has D⁰X₁(D), D⁰X₂(D), . . . , D⁰X_(n−1)(D) and D⁰P(D), and therefore satisfies Math. 60.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 60} \right\rbrack & \; \\ {h_{i,0} = \left\lbrack \underset{n}{\underset{}{1\; \ldots \mspace{14mu} 1}} \right\rbrack} & \left( {{Math}.\mspace{14mu} 60} \right) \end{matrix}$

In Math. 60, Λ(k)=Λ(k+m) is satisfied for k, where Λ(k) corresponds to h_(i) on a kth row of the parity check matrix.

Using Math. 58, Math. 59 and Math. 60, an LDPC-CC check matrix based on the parity check polynomial having a coding rate of R=(n−1)/n and a time-varying period of m is represented as shown in Math. 61.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 61} \right\rbrack & \; \\ {H = \begin{bmatrix} \ddots & \; & \; & \; & \mspace{11mu} & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \; & \; \\ \; & h_{0,\Gamma} & h_{0,{\Gamma - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,0} & \; & \; & \; & \; & \; & \; & \; \\ \; & \; & h_{1,\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{1,1} & h_{1,0} & \; & \; & \; & \; & \; & \; \\ \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; \\ \; & \; & \; & \; & h_{m,{1 - \Gamma}} & h_{{m - 1},{\Gamma - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},0} & \; & \; & \; & \; \\ \; & \; & \; & \; & \; & h_{0,\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,1} & h_{0,0} & \; & \; & \; \\ \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; \\ \; & \; & \; & \; & \; & \; & \; & h_{{m - 1},\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},0} & \; \\ \; & \; & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 61} \right) \end{matrix}$

Embodiment 5

The present embodiment describes a case where the time-varying LDPC-CC described in Embodiment 1 is applied to an erasure correction scheme. However, the time-varying period of the LDPC-CC may also be a time-varying period of two, three, or four.

For example, FIG. 20 is a conceptual diagram of a communication system using erasure correction coding using an LDPC code. In FIG. 20, a communication device on the encoding side performs LDPC encoding on information packets 1 to 4 to transmit and generate parity packets a and b. A upper layer processing section outputs an encoded packet which is a parity packet added to an information packet to a lower layer (physical layer, PHY, in the example of FIG. 20) and a physical layer processing section of the lower layer transforms the encoded packet into one that can be transmitted through a communication channel and outputs the encoded packet to the communication channel. FIG. 20 shows an example of a case where the communication channel is a wireless communication channel.

In a communication device on the decoding side, a physical layer processing section in a lower layer performs reception processing. At this time, it is assumed that a bit error has occurred in a lower layer. There may be a case where due to this bit error, a packet including the corresponding bit may not be decoded correctly in the upper layer, the packet may be lost. The example in FIG. 20 shows a case where information packet 3 is lost. The upper layer processing section applies LDPC decoding processing to the received packet column and thereby decodes lost information packet 3. For LDPC decoding, sum-product decoding that performs decoding using belief propagation (BP) or Gaussian erasure method or the like is used.

FIG. 21 is an overall diagram of the above-described communication system. In FIG. 21, the communication system includes communication device 2110 on the encoding side, communication channel 2120, and communication device 2130 on the decoding side.

The communication device 2110 on the encoding side includes an erasure correction coding-related processing section 2112, an error correction encoding section 2113, and a transmitting device 2114.

Communication device 2130 on the decoding side includes a receiving device 2131, an error correction decoding section 2132, and an erasure correction decoding-related processing section 2133.

The communication channel 2120 represents a channel through which a signal transmitted from the transmitting device 2114 of the communication device 2110 on the encoding side passes until it is received by the receiving device 2131 of the communication device 2130 on the decoding side. As the communication channel 2120, Ethernet™, power line, metal cable, optical fiber, wireless, light (visible light, infrared, or the like), or a combination thereof can be used.

The error correction encoding section 2113 introduces an error correction code in the physical layer besides an erasure correction code to correct errors produced in the communication channel 2120. Therefore, the error correction decoding section 2132 decodes the error correction code in the physical layer. Therefore, the layer to which erasure correction coding/decoding is applied is different from the layer (that is, the physical layer) to which error correction coding is applied, and soft decision decoding is performed in error correction decoding in the physical layer, while operation of reconstructing lost bits is performed in erasure correction decoding.

FIG. 22 shows an internal configuration of the erasure correction coding-related processing section 2112. The erasure correction coding method by the erasure correction coding-related processing section 2112 will be described using FIG. 22.

A packet generating section 2211 receives information 2241 as input, generates an information packet 2243, and outputs the information packet 2243 to a reordering section 2215. Hereinafter, a case will be described as an example where the information packet 2243 is formed with information packets #1 to #n.

The reordering section 2215 receives the information packet 2243 (here, information packets #1 to #n) as input, reorders the information, and outputs reordered information 2245.

An erasure correction encoder (parity packet generating section) 2216 receives the reordered information 2245 as input, performs encoding of, for example, an LDPC-CC (low-density parity-check convolutional code) on the information 2245, and generates parity. The erasure correction encoder (parity packet generating section) 2216 extracts only the parity portion generated, generates, and outputs a parity packet 2247 (by storing and reordering parity) from the extracted parity portion. At this time, when parity packets #1 to #m are generated for information packets #1 to #n, parity packet 2247 is formed with parity packets #1 to #m.

An error detection code adding section 2217 receives the information packet 2243 (information packets #1 to #n), and the parity packet 2247 (parity packets #1 to #m) as input. The error detection code adding section 2217 adds an error detection code, for example, CRC to information packet 2243 (information packets #1 to #n) and parity packet 2247 (parity packets #1 to #m). The error detection code adding section 2217 outputs information packet and parity packet 2249 with CRC added. Therefore, information packet and parity packet 2249 with CRC added is formed with information packets #1 to #n and parity packets #1 to #m with CRC added.

Furthermore, FIG. 23 shows another internal configuration of the erasure correction coding-related processing section 2112. The erasure correction coding-related processing section 2312 shown in FIG. 23 performs an erasure correction coding method different from the erasure correction coding-related processing section 2112 shown in FIG. 22. The erasure correction coding section 2314 configures packets #1 to #n+m assuming information bits and parity bits as data without making any distinction between information packets and parity packets. However, when configuring packets, the erasure correction coding section 2314 temporarily stores information and parity in an internal memory (not shown), then performs reordering and configures packets. The error detection code adding section 2317 then adds an error detection code, for example, CRC to these packets and outputs packets #1 to #n+m with CRC added.

FIG. 24 shows an internal configuration of an erasure correction decoding-related processing section 2433. The erasure correction decoding method by the erasure correction decoding-related processing section 2433 is described using FIG. 24.

An error detection section 2435 receives packet 2451 after the decoding of an error correction code in the physical layer as input and performs error detection using, for example, CRC. At this time, packet 2451 after the decoding of an error correction code in the physical layer is formed with decoded information packets #1 to #n and decoded parity packets #1 to #m. When there are lost packets in the decoded information packets and decoded parity packets as a result of the error detection as shown, for example, in FIG. 24, the error detection section 2435 assigns packet numbers to the information packets and parity packets in which packet loss has not occurred and outputs these packets as packet 2453.

An erasure correction decoder 2436 receives packet 2453 (information packets (with packet numbers) in which packet loss has not occurred and parity packets (with packet numbers)) as input. The erasure correction decoder 2436 performs (reordering and then) erasure correction code decoding on packet 2453 and decodes information packet 2455 (information packets #1 to #n). When encoding is performed by the erasure correction encoding-related processing section 2312 shown in FIG. 23, packets with no distinction between information packets and parity packets are input to the erasure correction decoder 2436 and erasure correction decoding is performed.

When compatibility between the improvement of transmission efficiency and the improvement of erasure correction capability is considered, it is desirable to be able to change the coding rate with an erasure correction code according to communication quality. FIG. 25 shows a configuration example of an erasure correction encoder 2560 that can change the coding rate of an erasure correction code according to communication quality.

A first erasure correction encoder 2561 is an encoder for an erasure correction code having a coding rate of ½. Furthermore, a second erasure correction encoder 2562 is an encoder for an erasure correction code having a coding rate of ⅔. Furthermore, a third erasure correction encoder 2563 is an encoder for an erasure correction code having a coding rate of ¾.

The first erasure correction encoder 2561 receives information 2571 and control signal 2572 as input, performs encoding when the control signal 2572 designates a coding rate of ½, and outputs data 2573 after the erasure correction coding to a selection section 2564. Similarly, the second erasure correction encoder 2562 receives information 2571 and control signal 2572 as input, performs encoding when the control signal 2572 designates a coding rate of ⅔, and outputs data 2574 after the erasure correction coding to the selection section 2564. Similarly, the third erasure correction encoder 2563 receives information 2571 and control signal 2572 as input, performs encoding when the control signal 2572 designates a coding rate of ¾, and outputs data 2575 after the erasure correction coding to the selection section 2564.

A selection section 2564 receives data 2573, 2574 and 2575 after the erasure correction coding and control signal 2572 as input, and outputs data 2576 after the erasure correction coding corresponding to the coding rate designated by the control signal 2572.

By changing the coding rate of an erasure correction code according to the communication situation and setting an appropriate coding rate in this way, it is possible to realize compatibility between the improvement of receiving quality of the communicating party and the improvement of the transmission rate of data (information).

At this time, the encoder is required to realize a plurality of coding rates with a small circuit scale and achieve high erasure correction capability simultaneously. Hereinafter, an encoding method (encoder) and decoding method for realizing this compatibility will be described in detail.

The encoding and decoding methods to be described hereinafter use the LDPC-CC described in Embodiments 1 to 3 as a code for erasure correction. If erasure correction capability is focused upon at this time, when, for example, an LDPC-CC having a coding rate greater than ¾ is used, high erasure correction capability can be achieved. On the other hand, when an LDPC-CC having a lower coding rate than ⅔ is used, there is a problem that it is difficult to achieve high erasure correction capability. Hereinafter, an encoding method that can solve this problem and realize a plurality of coding rates with a small circuit scale will be described.

FIG. 26 is an overall configuration diagram of a communication system. In FIG. 26, the communication system includes communication device 2600 on the encoding side, a communication channel 2607, and a communication device 2608 on the decoding side.

The communication channel 2607 represents a channel through which a signal transmitted from the transmitting device 2605 of the communication device 2600 on the encoding side passes until it is received by the receiving device 2609 of the communication device 2608 on the decoding side.

A receiving device 2613 receives received signal 2612 as input and obtains information (feedback information) 2615 fed back from the communication device 2608 and received data 2614.

The erasure correction coding-related processing section 2603 receives information 2601, a control signal 2602, and information 2615 fed back from the communication device 2608 as input. The erasure correction coding-related processing section 2603 determines the coding rate of an erasure correction code based on control signal 2602 or feedback information 2615 from the communication devices 2608, performs encoding, and outputs a packet after the erasure correction encoding.

The error correction encoding section 2604 receives packets after the erasure correction coding, control signal 2602, and feedback information 2615 from the communication device 2608 as input. The error correction encoding section 2604 determines the coding rate of an error correction code in the physical layer based on control signal 2602 or feedback information 2615 from the communication device 2608, performs error correcting coding in the physical layer, and outputs encoded data.

The transmitting device 2605 receives the encoded data as input, performs processing such as quadrature modulation, frequency conversion, and amplification, and outputs a transmission signal. Here, it is assumed that the transmission signal includes symbols such as symbols for transmitting control information, known symbols in addition to data. Furthermore, it is assumed that the transmission signal includes control information such as information on the coding rate of an error correction code in the physical layer and the coding rate of an erasure correction code.

The receiving device 2609 receives a received signal as input, applies processing such as amplification, frequency conversion, and quadrature, demodulation, outputs a received log-likelihood ratio, estimates an environment of the communication channel such as propagation environment and reception electric field intensity from known symbols included in the transmission signal, and outputs an estimation signal. Furthermore, the receiving device 2609 demodulates symbols for the control information included in the received signal, thereby obtains information on the coding rate of the error correction code and the coding rate of the erasure correction code in the physical layer set by the transmitting device 2605 and outputs the information as a control signal.

The error correction decoding section 2610 receives the received log-likelihood ratio and a control signal as input and performs appropriate error correction decoding in the physical layer using the coding rate of the error correction code in the physical layer included in the control signal. The error correction decoding section 2610 outputs the decoded data and outputs information on whether or not error correction has been successfully performed in the physical layer (error correction success or failure information (e.g. ACK/NACK)).

The erasure correction decoding-related processing section 2611 receives decoded data and a control signal as input and performs erasure correction decoding using the coding rate of the erasure correction code included in the control signal. The erasure correction decoding-related processing section 2611 then outputs the erasure correction decoded data and outputs information on whether or not error correction has been successfully performed in erasure correction (erasure correction success/failure information (e.g. ACK/NACK)).

The transmitting device 2617 receives estimation information (RSSI: Received Signal Strength Indicator, or CSI: Channel State Information) that is estimation of the environment of the communication channel such as propagation environment, reception electric field intensity, error correction success/failure information in the physical layer and feedback information based on the erasure correction success/failure information in erasure correction, and transmission data as input. The transmitting device 2617 applies processing such as encoding, mapping, quadrature modulation, frequency conversion, amplification and outputs a transmission signal 2618. The transmission signal 2618 is transmitted to the communication apparatus 2600.

The method of changing the coding rate of an erasure correction code in the erasure correction coding-related processing section 2603 is described using FIG. 27. In FIG. 27, parts operating in the same way as those in FIG. 22 are assigned the same reference signs. FIG. 27 is different from FIG. 22 in that control signal 2602 and feedback information 2615 are input to the packet generating section 2211 and the erasure correction encoder (parity packet generating section) 2216. The erasure correction encoding-related processing section 2603 changes the packet size and the coding rate of the erasure correction code based on control signal 2602 and feedback information 2615.

Furthermore, FIG. 28 shows another internal configuration of the erasure correction encoding-related processing section 2603. The erasure correction encoding-related processing section 2603 shown in FIG. 28 changes the coding rate of the erasure correction code using a method different from that of the erasure correction coding-related processing section 2603 shown in FIG. 27. In FIG. 28, parts operating in the same way as those in FIG. 23 are assigned the same reference signs. FIG. 28 is different from FIG. 23 in that control signal 2602 and feedback information 2615 are input to the erasure correction encoder 2316 and the error detection code adding section 2317. The erasure correction coding-related processing section 2603 then changes the packet size and the coding rate of the erasure correction code based on control signal 2602 and feedback information 2615.

FIG. 29 shows an example of configuration of the encoding section according to the present embodiment. An encoder 2900 in FIG. 29 is an LDPC-CC encoding section supporting a plurality of coding rates. Hereinafter, a case will be described where the encoder 2900 shown in FIG. 29 supports a coding rate of ⅘ and a coding rate of 16/25.

A reordering section 2902 receives information X as input and stores information bits X. When four information bits X are stored, the reordering section 2902 reorders information bits X and outputs information bits X1, X2, X3, and X4 in parallel in four lines of information. However, this configuration is merely an example. Operations of the reordering section 2902 will be described later.

An LDPC-CC encoder 2907 supports a coding rate of ⅘. The LDPC-CC encoder 2907 receives information bits X1, X2, X3, and X4, and control signal 2916 as input. The LDPC-CC encoder 2907 performs the LDPC-CC encoding shown in Embodiment 1 to Embodiment 3 and outputs parity bit (P1) 2908. When control signal 2916 indicates a coding rate of ⅘, information X1, X2, X3, and X4 and parity (P1) become the outputs of the encoder 2900.

The reordering section 2909 receives information bits X1, X2, X3, X4, parity bit P1, and control signal 2916 as input. When control signal 2916 indicates a coding rate of ⅘, the reordering section 2909 does not operate. On the other hand, when control signal 2916 indicates a coding rate of 16/25, the reordering section 2909 stores information bits X1, X2, X3, and X4 and parity bit P1. The reordering section 2909 then reorders stored information bits X1, X2, X3, and X4 and parity bit P1, outputs reordered data #1 (2910), reordered data #2 (2911), reordered data #3 (2912), and reordered data #4 (2913). The reordering method in the reordering section 2909 will be described later.

As with the LDPC-CC encoder 2907; the LDPC-CC encoder 2914 supports a coding rate of ⅘. The LDPC-CC encoder 2914 receives reordered data #1 (2910), reordered data #2 (2911), reordered data #3 (2912), reordered data #4 (2913), and control signal 2916 as input. When control signal 2916 indicates a coding rate of 16/25, the LDPC-CC encoder 2914 performs encoding and outputs parity bit (P2) 2915. When control signal 2916 indicates a coding rate of ⅘, reordered data #1 (2910), reordered data #2 (2911), reordered data #3 (2912), reordered data #4 (2913), and parity bit (P2) (2915) become the outputs of the encoder 2900.

FIG. 30 shows an overview of the encoding method by the encoder 2900. The reordering section 2902 receives information bit X(4N) as input from information bit X(1) and the reordering section 2902 reorders information bits X. The reordering section 2902 then outputs the reordered information bits in four parallel lines. Therefore, the reordering section 2902 outputs [X1(1), X2(1), X3(1), X4(1)] first and then outputs [X1(2), X2(2), X3(2), X4(2)]. The reordering section 2902 finally outputs [X1(N), X2(N), X3(N), X4(N)].

The LDPC-CC encoder 2907 of a coding rate of ⅘ encodes [X1(1), X2(1), X3(1), X4(1)] and outputs parity bit P1(1). The LDPC-CC encoder 2907 likewise performs encoding, generates, and outputs parity bits P1(2), P1(3), . . . , P1(N) hereinafter.

The reordering section 2909 receives [X1(1), X2(1), X3(1), X4(1), P1(1)], [X1(2), X2(2), X3(2), X4(2), P1(2)], . . . , [X1(N), X2(N), X3(N), X4(N), P1(N)] as input. The reordering section performs reordering including parity bits in addition to information bits.

For example, in the example shown in FIG. 30, the reordering section 2909 outputs reordered [X1(50), X2(31), X3(7), P1(40)], [X2(39), X4(67), P1(4), X1(20)], . . . , [P2(65), X4(21), P1(16), X2(87)].

The LDPC-CC encoder 2914 of a coding rate of ⅘ performs encoding on [X1(50), X2(31), X3(7), P1(40)] as shown by frame 3000 in FIG. 30 and generates parity bit P2(1). The LDPC-CC encoder 2914 likewise generates and outputs parity bits P2(1), P2(2), . . . , P2(M) hereinafter.

When control signal 2916 indicates a coding rate of ⅘, the encoder 2900 generates packets using [X1(1), X2(1), X3(1), X4(1), P1(1)], [X1(2), X2(2), X3(2), X4(2), P1(2)], . . . , [X1(N), X2(N), X3(N), X4(N), P1(N)].

Furthermore, when control signal 2916 indicates a coding rate of 16/25, the encoder 2900 generates packets using [X1(50), X2(31), X3(7), P1(40), P2(1)], [X2(39), X4(67), P1(4), X1(20), P2(2)], . . . , [P2(65), X4(21), P1(16), X2(87), P2(M)].

As described above, according to the present embodiment, the encoder 2900 adopts a configuration of connecting the LDPC-CC encoders 2907 and 2914 of a coding rate as high as ⅘ and arranging the reordering sections 2902 and 2909 before the LDPC-CC encoders 2907 and 2914, respectively. The encoder 2900 then changes data to be output according to the designated coding rate. Thus, it is possible to support a plurality of coding rates with a small circuit scale and achieve an effect of achieving high erasure correction capability at each coding rate.

FIG. 29 describes a configuration of the encoder 2900 in which two LDPC-CC encoders 2907 and 2914 of a coding rate of ⅘ are connected, but the configuration is not limited to this. For example, as shown in FIG. 31, the encoder 2900 may also have a configuration in which LDPC-CC encoders 3102 and 2914 of different coding rates are connected. In FIG. 31, parts operating in the same way as those in FIG. 29 are assigned the same reference signs.

A reordering section 3101 receives information bits X as input and stores information bits X. When five information bits X are stored, the reordering section 3101 reorders information bits X and outputs information bits X1, X2, X3, X4, and X5 in five parallel lines.

An LDPC-CC encoder 3103 supports a coding rate of ⅚. The LDPC-CC encoder 3103 receives information bits X1, X2, X3, X4, X5, and control signal 2916 as input, performs encoding on information bits X1, X2, X3, X4, and X5 and outputs parity bit (P1) 2908. When control signal 2916 indicates a coding rate of ⅚, information bits X1, X2, X3, X4, X5, and parity bit (P1) 2908 become the outputs of the encoder 2900.

A reordering section 3104 receives information bits X1, X2, X3, X4, X5, parity bit (P1) 2908, and control signal 2916 as input. When control signal 2916 indicates a coding rate of ⅔, the reordering section 3104 stores information bits X1, X2, X3, X4, X5, and parity bit (P1) 2908. The reordering section 3104 reorders stored information bits X1, X2, X3, X4, X5, and parity bit (P1) 2908 and outputs the reordered data in four parallel lines. At this time, the four lines include information bits X1, X2, X3, X4, X5, and parity bit (P1).

An LDPC-CC encoder 2914 supports a coding rate of ⅘. The LDPC-CC encoder 2914 receives four lines of data and control signal 2916 as input. When control signal 2916 indicates a coding rate of ⅔, the LDPC-CC encoder 2914 performs encoding on the four lines of data and outputs parity bit (P2). Therefore, the LDPC-CC encoder 2914 performs encoding using information bits X1, X2, X3, X4, X5, and parity bit P1.

The encoder 2900 may set a coding rate to any value. Furthermore, when encoders of the same coding rate are connected, these may be encoders of the same code or encoders of different codes.

Furthermore, although FIG. 29 and FIG. 31 show configuration examples of the encoder 2900 supporting two coding rates, the encoder 2900 may support three or more coding rates. FIG. 32 shows an example of configuration of an encoder 3200 supporting three or more coding rates.

A reordering section 3202 receives information bits X as input and stores information bits X. The reordering section 3202 reorders stored information bits X and outputs reordered information bits X as first data 3203 to be encoded by the next LDPC-CC encoder 3204.

The LDPC-CC encoder 3204 supports a coding rate of (n−1)/n. The LDPC-CC encoder 3204 receives the first data 3203 and control signal 2916 as input, performs encoding on the first data 3203 and control signal 2916 and outputs parity bit (P1) 3205. When control signal 2916 indicates a coding rate of (n−1)/n, the first data 3203 and parity bit (P1) 3205 become the outputs of the encoder 3200.

A reordering section 3206 receives the first data 3203, parity bit (P1) 3205 and control signal 2916 as input. When the control signal 2916 indicates a coding rate of {(n−1)(m−1)}/(nm) or less, the reordering section 3206 stores the first data 3203 and bit parity (P1) 3205. The reordering section 3206 reorders the stored first data 3203 and parity bit (P1) 3205 and outputs reordered first data 3203 and parity bit (P1) 3205 as second data 3207 to be encoded by the next LDPC-CC encoder 3208.

The LDPC-CC encoder 3208 supports a coding rate of (m−1)/m. The LDPC-CC encoder 3208 receives the second data 3207 and control signal 2916 as input. When control signal 2916 indicates a coding rate of {(n−1)(m−1)}/(nm) or less, the LDPC-CC encoder 3208 performs encoding on the second data 3207 and outputs parity (P2) 3209. When control signal 2916 indicates a coding rate of {(n−1)(m−1)}/(nm), the second data 3207 and parity bit (P2) 3209 become the output of the encoder 3200.

A reordering section 3210 receives the second data 3207, parity bit (P2) 3209, and control signal 2916 as input. When control signal 2916 indicates a coding rate of {(n−1)(m−1)(s−1)}/(nms) or less, the reordering section 3210 stores the second data 3209 and parity bit (P2) 3207. The reordering section 3210 reorders the stored second data 3209 and parity bit (P2) 3207 and outputs reordered second data 3209 and parity (P2) 3207 as third data 3211 to be encoded by the next LDPC-CC encoder 3212.

The LDPC-CC encoder 3212 supports a coding rate of (s−1)/s. The LDPC-CC encoder 3212 receives the third data 3211 and control signal 2916 as input. When control signal 2916 indicates a coding rate of {(n−1)(m−1)(s−1)}/(nms) or less, The LDPC-CC encoder 3212 performs encoding on the third data 3211 and outputs parity bit (P3) 3213. When control signal 2916 indicates a coding rate of {(n−1)(m−1)(s−1)}/(nms), the third data 3211 and parity bit (P3) 3213 become the outputs of the encoder 3200.

By further connecting multiple LDPC-CC encoders, it is possible to realize more coding rates. This makes it possible to realize a plurality of coding rates with a small circuit scale and achieve an effect of being able to achieve high erasure correction capability at each coding rate.

In FIG. 29, FIG. 31 and FIG. 32, reordering (initial-stage reordering) of information bits X is not always necessary. Furthermore, although the reordering section has been described as having a configuration in which reordered information bits X are output in parallel, the reordering section is not limited to this configuration, but reordered information bits X may also be serially output.

FIG. 33 shows an example of configuration of a decoder 3310 corresponding to the encoder 3200 in FIG. 32.

When transmission sequence u_(i) at point in time i is assumed as u_(i)=(X_(1,i), X_(2,i), . . . , X_(n−1,i), P_(1,i), P_(2,i), P_(3,i) . . . ), transmission sequence u is represented as u=(u₀, u₁, . . . , u_(i), . . . )^(T).

In FIG. 34, matrix 3300 represents parity check matrix H used by the decoder 3310. Furthermore, matrix 3301 represents a sub-matrix corresponding to the LDPC-CC encoder 3204, matrix 3302 represents a sub-matrix corresponding to the LDPC-CC encoder 3208, and matrix 3303 represents a sub-matrix corresponding to the LDPC-CC encoder 3212. Sub-matrices in parity check matrix H continue likewise hereinafter. The decoder 3310 is designed to possess a parity check matrix of the lowest coding rate.

In the decoder 3310 shown in FIG. 33, a BP decoder 3313 is a BP decoder based on a parity check matrix of the lowest coding rate among coding rates supported. The BP decoder 3313 receives lost data 3311 and control signal 3312 as input. Here, lost data 3311 is comprised of bits which have already been determined to be zero or one and bits which have not yet been determined to be zero or one. The BP decoder 3313 performs BP decoding based on the coding rate designated by control signal 3312 and thereby performs erasure correction, and outputs data 3314 after the erasure correction.

Hereinafter, operations of the decoder 3310 will be described.

For example, when the coding rate is (n−1)/n, data corresponding to P2, P3, . . . , are not present in lost data 3311. However, in this case, the BP decoder 3313 performs decoding operation assuming data corresponding to P2, P3, . . . , to be zero and can thereby realize erasure correction.

Similarly, when the coding rate is {(n−1)(m−1))}/(nm), data corresponding to P2, P3, . . . are not present in lost data 3311. However, in this case, the BP decoder 3313 performs decoding operation assuming data corresponding to P3, . . . to be zero and can thereby realize erasure correction. The BP decoder 3313 may operate similarly for other coding rates.

Thus, the decoder 3310 possesses a parity check matrix of the lowest coding rate among the supported coding rates and supports BP decoding at a plurality of coding rates using this parity check matrix. This makes it possible to support a plurality of coding rates with a small circuit scale and achieve an effect of achieving high erasure correction capability at each coding rate.

Hereinafter, a case will be described where erasure correction coding is actually performed using an LDPC-CC. Since an LDPC-CC is a kind of convolutional code, the LDPC-CC requires termination or tail-biting to achieve high erasure correction capability.

A case will be studied below as an example where zero-termination described in Embodiment 2 is used. Particularly, a method of inserting a termination sequence will be described.

It is assumed that the number of information bits is 16384 and the number of bits constituting one packet is 512. Here, a case where encoding is performed using an LDPC-CC of a coding rate of ⅘ will be considered. At this time, if information bits are encoded at a coding rate of ⅘ without performing termination, since the number of information bits is 16384, the number of parity bits is 4096 (16384/4). Therefore, when one packet is formed with 512 bits (where 512 bits do not include bits other than information such as error detection code), 40 packets are generated.

However, if encoding is performed without performing termination in this way, the erasure correction capability deteriorates significantly. To solve this problem, a termination sequence needs to be inserted.

Thus, a termination sequence insertion method will be proposed below taking the number of bits constituting a packet into consideration.

To be more specific, the proposed method inserts a termination sequence in such a way that the sum of the number of information bits (not including the termination sequence), the number of parity bits and the number of bits of the termination sequence becomes an integer multiple of the number of bits constituting a packet. However, the bits constituting a packet do not include control information such as the error detection code and the number of bits constituting a packet means the number of bits of data relating to erasure correction coding.

Therefore, in the above example, a termination sequence of 512×h bits (h is a natural number) is added. By so doing, it is possible to provide an effect of inserting a termination sequence, and thereby achieve high erasure correction capability and efficiently configure a packet.

As described above, an LDPC-CC of a coding rate of (n−1)/n is used and when the number of information bits is (n−1)×c bits, c parity bits are obtained. Next, a relationship between the number of bits of zero-termination d and the number of bits constituting one packet z will be considered. However, the number of bits constituting a packet z does not include control information such as error detection code, and the number of bits constituting a packet z means the number of bits of data relating to erasure correction coding.

At this time, if the number of bits of zero-termination d is determined in such a way that Math. 62 holds true, it is possible to provide an effect of inserting a termination sequence, achieve high erasure correction capability and efficiently configure a packet.

[Math. 62]

(n−1)×c+c+d=nc+d=Az  (Math. 62)

where A is an integer.

However, (n−1)×c information bits may include padded dummy data (not original information bits but known bits (e.g. zeroes) added to information bits to facilitate encoding). Padding will be described later.

When erasure correction encoding is performed, there is a reordering section (2215) as is clear from FIG. 22. The reordering section is generally constructed using RAM. For this reason, it is difficult for the reordering section 2215 to realize hardware that supports reordering of all sizes of information bits (information size). Therefore, making the reordering section support reordering of several types of information size is important in suppressing an increase in the hardware scale.

It is possible to easily support both the aforementioned case where erasure correction coding is performed and the case where erasure correction encoding is not performed. FIG. 35 shows packet configurations in these cases.

When erasure correction encoding is not performed, only information packets are transmitted.

When erasure correction encoding is performed, consider a case where packets are transmitted using one of the following methods:

<1> Packets are generated and transmitted by making distinction between information packets and parity packets.

<2> Packets are generated and transmitted without making distinction between information packets and parity packets.

In this case, to suppress an increase in the hardware circuit scale, it is desirable to equalize the number of bits constituting a packet z regardless of whether or not erasure correction encoding is performed.

Therefore, when the number of information bits used for erasure correction encoding is assumed to be I, Math. 63 needs to hold true. However, depending on the number of information bits, padding needs to be performed.

[Math. 63]

I=α×z  (Math. 63)

Here, α is assumed to be an integer. Furthermore, z is the number of bits constituting a packet, bits constituting a packet do not include control information such as error detection code and the number of bits constituting a packet z means the number of bits of data relating to erasure correction encoding.

In the above case, the number of bits of information required for erasure correction encoding is a×z. However, information of all a×z bits is not always actually available for erasure correction encoding but only information of fewer than a×z bits may be available. In this case, a method of inserting dummy data is employed so that the number of bits becomes α×z. Therefore, when the number of bits of information for erasure correction encoding is smaller than a×z, known data (e.g. zero) is inserted so that the number of bits becomes a×z. Erasure correction encoding is performed on the information of a×z bits generated in this way.

Parity bits are obtained by performing erasure correction encoding. It is then assumed that zero-termination is performed to achieve high erasure correction capability. At this time, assuming that the number of bits of parity obtained through erasure correction encoding is C and the number of bits of zero-termination is D, packets are efficiently configured when Math. 64 holds true.

[Math. 64]

C+D=βz  (Math. 64)

Here, β is assumed to be an integer. Furthermore, z is the number of bits constituting a packet, bits constituting a packet does not include control information such as error detection code and the number of bits constituting a packet z means the number of bits of data relating to erasure correction encoding.

Here, the bits constituting a packet z is often configured in byte units. Therefore, when the coding rate of an LDPC-CC is (n−1)/n, if Math. 65 holds true, it is possible to avoid such a situation that padding bits are always necessary when erasure correction encoding is performed.

[Math. 65]

(n−1)=2^(k)  (Math. 65)

where K is an integer equal to or greater than zero.

Therefore, when an erasure correction encoder that realizes a plurality of coding rates is configured, if the coding rates to be supported are assumed to be R=(n₀−1)/n₀, (n₁−1)/n₁, (n₂−1)/n₂, . . . , (n_(i)−1)/n_(i), . . . , (n_(v)−1)/n_(v) (i=0, 1, 2, . . . , v−1, v; v is an integer equal to or greater than one) and Math. 66 holds true, it is possible to avoid such a situation that padding bits are always required when erasure correction encoding is performed.

[Math. 66]

(n _(i)−1)=2^(k)  (Math. 64)

where K is an integer equal to or greater than zero.

When the condition corresponding to this condition is considered about, for example, a coding rate of the erasure correction encoder in FIG. 32, if it is assumed that Math. 67-1 through Math. 67-3 hold true, it is possible to avoid such a situation that padding bits are always necessary when erasure correction encoding is performed.

[Math. 67]

(n−1)=2^(k1)  (Math. 67-1)

(n−1)(m−1)=2^(k2)  (Math. 67-2)

(n−1)(m−1)(s−1)=2^(k3)  (Math. 67-3)

where k₁, k₂, and k₃ are integers equal to or greater than zero.

Although a case with an LDPC-CC has been described above, the same may be likewise considered about a QC-LDPC code, LDPC code (LDPC block code) such as random LDPC code as shown in Non-Patent Literature 1, Non-Patent Literature 2, Non-Patent Literature 3, and Non-Patent Literature 7. For example, consider an erasure correction encoder that uses an LDPC block code as an erasure correction code and supports a plurality of coding rates of R=b₀/a₀, b₁/a₁, b₂/a₂, . . . , b_(i)/a_(i), . . . , b_(v−1)/a_(v−1), b_(v)/a_(v) (i=0, 1, 2, . . . , v−1, v; v is an integer equal to or greater than one; a_(i) is an integer equal to or greater than one, b_(i) is an integer equal to or greater than one; a_(i)≧b_(i)). At this time, if Math. 68 holds true, it is possible to avoid such a situation that padding bits are always required when erasure correction encoding is performed.

[Math. 68]

b _(i)=2^(ki)  (Math. 68)

where k_(i) is an integer equal to or greater than zero.

Furthermore, with regard to the relationship between the number of information bits, the number of parity bits and the number of bits constituting a packet, a case will be considered where an LDPC block code is used as the erasure correction code. At this time, assuming that the number of information bits used for erasure correction encoding is I, Math. 69 may hold true. However, depending on the number of information bits, padding needs to be performed.

[Math. 69]

I=α×z  (Math. 69)

Here, α is assumed to be an integer. It is also the number of bits constituting a packet and bits constituting a packet do not include control information such as error detection code, and the number of bits constituting a packet z means the number of bits of data relating to erasure correction encoding.

In the above-described case, the number of bits of information necessary to perform erasure correction coding is a×z. However, all information of a×z bits is not always actually available for erasure correction encoding, but only information of bits fewer than a×z bits may be available. In this case, a method of inserting dummy data is employed so that the number of bits becomes a×z. Therefore, when the number of bits of information for erasure correction encoding is smaller than a×z, known data (e.g. zeroes) are inserted so that the number of bits becomes a×z. Erasure correction encoding is performed on the information of a×z bits generated in this way.

Parity bits are obtained by performing erasure correction encoding. At this time, assuming that the number of bits of parity obtained through erasure correction encoding is C, packets are efficiently configured when Math. 70 holds true.

[Math. 70]

C=βz  (Math. 70)

where (3 is assumed to be an integer.

Since the block length is determined when tail-biting is performed, this case can be handled in the same way as when an LDPC block code is applied to an erasure correction code.

Embodiment 6

The present embodiment will describe important items relating to an LDPC-CC based on a parity check polynomial having a time-varying period greater than three as described in Embodiment 1.

1. LDPC-CC

An LDPC-CC is a code defined by a low-density parity check matrix as in the case of an LDPC-BC, can be defined by a time-varying parity check matrix of an infinite length, but can actually be considered with a periodically time-varying parity check matrix.

Assuming that a parity check matrix is H and a syndrome former is H^(T), H^(T) of an LDPC-CC having a coding rate of R=d/c (d<c) can be represented as shown in Math. 71.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 71} \right\rbrack & \; \\ {H^{T} = \begin{bmatrix} \ddots & \vdots & \vdots & \ddots & \; & \; & \; & \; & \; \\ \; & {H_{0}^{T}\left( {t - M_{s}} \right)} & {H_{1}^{T}\left( {t - M_{s} + 1} \right)} & \ldots & {H_{Ms}^{T}(t)} & \; & \; & \; & \; \\ \; & \; & {H_{0}^{T}\left( {t - M_{s} + 1} \right)} & \ldots & {H_{{Ms} - 1}^{T}(t)} & {H_{Ms}^{T}\left( {t + 1} \right)} & \; & \; & \; \\ \; & \; & \; & \ddots & \vdots & \vdots & \ddots & \; & \; \\ \; & \; & \; & \; & {H_{0}^{T}(t)} & {H_{1}^{T}\left( {t + 1} \right)} & \ldots & {H_{Ms}^{T}\left( {t + M_{s}} \right)} & \; \\ \; & \; & \; & \; & \; & \ddots & \vdots & \vdots & \ddots \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 71} \right) \end{matrix}$

In Math. 71, H^(T) _(i)(t) (i=0, 1, . . . , m_(s)) is a c×(c−d) periodic sub-matrix and if the period is assumed to be T_(s), H^(T) _(i)(t)=H^(T) _(i)(t+T_(s)) holds true for ^(∀)i and ^(∀)t. Furthermore, M_(s) is a memory size.

The LDPC-CC defined by Math. 71 is a time-varying convolutional code and this code is called a time-varying LDPC-CC. As for decoding, BP decoding is performed using parity check matrix H. When encoded sequence vector u is assumed, the following relational expression holds true.

[Math. 72]

Hu=0 (Math. 72)

An information sequence is obtained by performing BP decoding using the relational expression in Math. 72.

2. LDPC-CC Based on Parity Check Polynomial

Consider a systematic convolutional code of a coding rate of R=½ of generator matrix G=[1 G₁(D)/G₀(D)]. At this time, G₁ represents a feed forward polynomial and G₀ represents a feedback polynomial.

Assuming a polynomial representation of an information sequence is X(D) and a polynomial representation of a parity sequence is P(D), a parity check polynomial that satisfies zero can be represented as shown below.

[Math. 73]

G ₁(D)X(D)+G ₀(D)P(D)=0  (Math. 73)

Here, the parity check polynomial is provided as Math. 74 that satisfies Math. 73.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 74} \right\rbrack} & \; \\ {{{\left( {D^{a_{1}} + D^{a_{2}} + \ldots + D^{a_{r}} + 1} \right){X(D)}} + {\left( {D^{b_{1}\;} + D^{b_{2}} + \ldots + D^{b_{s}} + 1} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 74} \right) \end{matrix}$

In Math. 74, a_(p) and b_(q) are integers equal to or greater than one (p=1, 2, . . . , r; q=1, 2, . . . , s), terms of D^(O) are present in X(D) and P(D). The code defined by a parity check matrix based on the parity check polynomial that satisfies zero of Math. 74 becomes a time-invariant LDPC-CC.

M (m is an integer equal to or greater than two) different parity check polynomials based on Math. 74 are provided. The parity check polynomial that satisfies zero is represented as shown below.

[Math. 75]

A _(i)(D)X(D)+B _(i)(D)P(D)=0  (Math. 75)

At this time, i=0, 1, . . . , m−1.

The data and parity at point in time j are represented by X_(j) and P_(j) as u_(j)=(X_(j), P_(j)). It is then assumed that the parity check polynomial that satisfies zero of Math. 76 holds true.

[Math. 76]

A _(k)(D)X(D)+B _(k)(D)P(D)=0(k=j mod m)  (Math. 76)

Parity P_(j) at point in time j can then be determined from Math. 76. The code defined by the parity check matrix generated based on the parity check polynomial that satisfies zero of Math. 76 becomes an LDPC-CC having a time-varying period of m (TV-m-LDPC-CC: Time-Varying LDPC-CC with a time period of m).

At this time, there are terms of D^(o) in P(D) of the time-invariant LDPC-CC defined in Math. 74 and TV-m-LDPC-CC defined in Math. 76, where b_(j) is an integer equal to or greater than zero. Therefore, there is a characteristic that parity can be easily found sequentially by means of a register and exclusive OR.

The decoding section creates parity check matrix H from Math. 74 using the time-invariant LDPC-CC and creates parity check matrix H from Math. 76 using the TV-m-LDPC-CC. The decoding section performs BP decoding on encoded sequence u=(u₀, u₁, . . . , u_(j), . . . )^(T) using Math. 72 and obtains an information sequence.

Next, consider a time-invariant LDPC-CC and TV-m-LDPC-CC of a coding rate of(n−1)/n. It is assumed that information sequence X₁, X₂, . . . , X_(n−1) and parity P at point in time j are represented by X_(2,j), . . . , X_(n−1,j), and P_(j) respectively, and u_(j)=(X_(1,j), X_(2,j), . . . , X_(n−1,j), P_(j)). When it is assumed that a polynomial representation of information sequence X₁, X₂, . . . , X_(n−1) is X₁(D), X₂(D), . . . , X_(n−1)(D), the parity check polynomial that satisfies zero is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 77} \right\rbrack} & \; \\ {{{\left( {D^{a_{1,1}} + D^{a_{1,2}} + \ldots + D^{a_{1,{r\; 1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{a_{2,1}} + D^{a_{2,2}} + \ldots + D^{a_{2,{r\; 2}}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{a_{{n - 1},1}} + D^{a_{{n - 1},2}} + \ldots + D^{a_{{n - 1},r_{n - 1}}} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{b_{1}} + D^{b_{2}} + \ldots + D^{b_{s}} + 1} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 77} \right) \end{matrix}$

In Math. 77, a_(p,i) is an integer equal to or greater than one (p=1, 2, . . . , n−1; i=1, 2, . . . r_(p)), and satisfies a_(p,y)≠a_(p,z) (^(∀)(y, z)|y, z=1, 2, . . . , r_(p), y≠z) and b≠b_(z) (^(∀)(y, z)|y, z=1,2, . . . , ε, y≠z).

m (m is an integer equal to or greater than two) different parity check polynomials based on Math. 77 are provided. A parity check polynomial that satisfies zero is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 78} \right\rbrack} & \; \\ {{{{A_{{X\; 1},i}(D)}{X_{1}(D)}} + {{A_{{X\; 2},i}(D)}{X_{2}(D)}} + \ldots + {{A_{{{X\; n} - 1},i}(D)}{X_{n - 1}(D)}} + {{B_{i}(D)}{P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 78} \right) \end{matrix}$

where i=0, 1, . . . , m−1.

It is then assumed that Math. 79 holds true for X_(1,j), X_(2,j), . . . , X_(n−1,j), and P_(j) of information X₁, X₂, . . . , X_(n−1) and parity P at point in time j.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 79} \right\rbrack} & \; \\ {{{{{A_{{X\; 1},k}(D)}{X_{1}(D)}} + {{A_{{X\; 2},k}(D)}{X_{2}(D)}} + \ldots + {{A_{{{X\; n} - 1},k}(D)}{X_{n - 1}(D)}} + {{B_{k}(D)}{P(D)}}} = 0}\mspace{20mu} \left( {k = {j\; {mod}\; m}} \right)} & \left( {{Math}.\mspace{14mu} 79} \right) \end{matrix}$

At this time, the codes based on Math. 77 and Math. 79 become time-invariant LDPC-CC and TV-m-LDPC-CC having a coding rate of(n−1)/n.

3. Regular TV-m-LDPC-CC

First, a regular TV-m-LDPC-CC handled in the present study will be described.

It is known that when the constraint length is substantially the same, a TV3-LDPC-CC can obtain better error correction capability than an LDPC-CC (TV2-LDPC-CC) having a time-varying period of two. It is also known that good error correction capability can be achieved by employing a regular LDPC code for the TV3-LDPC-CC. The present study attempts to create a regular LDPC-CC having a time-varying period of m (m>3).

A #qth parity check polynomial of a TV-m-LDPC-CC of a coding rate of (n−1)/n that satisfies zero is provided as shown below (q=0, 1, . . . , m−1).

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 80} \right\rbrack} & \; \\ {{{\left( {D^{a_{{\# q},1,1}} + D^{a_{{\# q},1,2}} + \ldots + D^{a_{{\# q},1,{r\; 1}}}} \right){X_{1}(D)}} + {\left( {D^{a_{{\# q},2,1}} + D^{a_{{\# q},2,2}} + \ldots + D^{a_{{\# q},2,{r\; 2}}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{a_{{\# q},{n - 1},1}} + D^{a_{{\# q},{n - 1},2}} + \ldots + D^{a_{{\# q},{n - 1},{{r\; n} - 1}}}} \right){X_{n - 1}(D)}} + {\left( {D^{b_{{\# q},1}} + D^{b_{{\# q},2}} + \ldots + D^{b_{{\# q},s}}} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 80} \right) \end{matrix}$

In Math. 80, a_(#q,p,i) is an integer equal to or greater than zero (p=1, 2, . . . , n−1; i=1, 2, . . . , r_(p)) and satisfies a_(#q,p,y)≠a_(#q,p,z) (^(∀)(y,z)|y, z=1, 2, . . . , r_(p), y≠z) and b_(#q,y)≠b_(#q,z)(^(∀)(y,z)|y, z=1, 2, . . . , ε, y≠z).

The following features are then provided.

Feature 1:

There is a relationship as shown below between the term of D^(a#α,p,i)X_(p)(D) of parity check polynomial #α, the term of D^(a#β,p,j)X_(p)(D) of parity check polynomial #β (α, β=0, 1, . . . , m−1; p=1, 2, . . . , n−1; i, j=1, 2, . . . , r_(p)) and between the term of D^(b#α,i)P(D) of parity check polynomial #α and the term of D^(b#β,j)P(D) of parity check polynomial #β (α, β=0, 1, . . . , m−1 (β≧α); i, j=1, 2, . . . , r_(p)).

<1> When β=α:

When {a_(#α,p,i,) mod m=a_(#β,p,j) mod m}∩{i≠j} holds true, variable node $1 is present which forms edges of both a check node corresponding to parity check polynomial #α and a check node corresponding to parity check polynomial #β as shown in FIG. 36.

When {b_(#α,i) mod m=b_(#β,j) mod m}∩{i≠j} holds true, variable node $1 is present which forms edges of both a check node corresponding to parity check polynomial #α and a check node corresponding to parity check polynomial #β as shown in FIG. 36.

<2> When β≠α:

It is assumed that β−α=L.

1) When a_(#α,p,i,) mod m<a_(#,p,j) mod m

When (a_(#β,p,j) mod m)−(a_(#α,p,i) mod m)=L, variable node $1 is present which forms edges of both a check node corresponding to parity check polynomial #α and a check node corresponding to parity check polynomial #β as shown in FIG. 36.

2) When a_(#α,p,i) mod m>a_(#β,p,j) mod m

When (a_(#β,p,j) mod m)−(a_(#α,p,i) mod m)=L+m, variable node $1 is present which forms edges of both a check node corresponding to parity check polynomial #α and a check node corresponding to parity check polynomial #β as shown in FIG. 36.

3) When b_(#α,i) mod m<b_(#β,j) mod m

When (b_(#β,j) mod m)−(b_(#α,i) mod m)=L, variable node $1 is present which forms edges of both a check node corresponding to parity check polynomial #α and a check node corresponding to parity check polynomial #β as shown in FIG. 36.

4) When b_(#α,i) mod m>b_(#β,j) mod m

When (b_(#β,j) mod m)−(b_(#β,i) mod m)=L+m, variable node $1 is present which forms edges of both a check node corresponding to parity check polynomial #α and a check node corresponding to parity check polynomial #β as shown in FIG. 36.

Theorem I holds true for cycle length six (CL6: cycle length of six) of a TV-m-LDPC-CC.

Theorem 1: The following two conditions are provided for a parity check polynomial that satisfies zero of the TV-m-LDPC-CC:

There are p and q that satisfy C#1.1: a_(#q,p,i) mod m=a_(#q,p,j) mod m=a_(#q,p,k) mod m, where i≠j, i≠k and j≠k.

There is q that satisfies C#1.2: b_(#q,i) mod m=b_(#q,j) mod m=b_(#q,k) mod m, where i≠j, i≠k and j≠k.

There is at least one CL6 when C#1.1 or C#1.2 is satisfied.

Proof:

If it is possible to prove that at least one CL6 is present when a_(#0,1,i) mod m=a_(#0,1,j) mod m=a_(#0,1,k) mod m when p=1 and q=0, it is possible to prove that at least one CL6 is present also for X₂(D), . . . , X_(n−1)(D), P(D) by substituting X₂(D), . . . , X_(n−1)(D), P(D) for X₁(D), if C#1.1 and C#1.2 hold true when q=0.

Furthermore, when q=0 if the above description can be proved, it is possible to prove that at least one CL6 is present also when q=1, . . . , m−1 if C#1.1 and C#1.2 hold true, in the same way of thinking.

Therefore, when p=1, q=0, if a_(#0,1,i) mod m=a_(#0,1,j) mod m=a_(#0,1,k) mod m holds true, it is possible to prove that at least one CL6 is present.

In X₁(D) when q=0 is assumed for a parity check polynomial that satisfies zero of the TV-m-LDPC-CC in Math. 80, if two or fewer terms are present, C#1.1 is never satisfied.

In X₁(D) when q=0 is assumed for a parity check polynomial that satisfies zero of the TV-m-LDPC-CC in Math. 80, if three terms are present and a_(#q,p,i) mod m=a_(#q,p,j) mod m=a_(#q,p,k) mod m is satisfied, the parity check polynomial that satisfies zero of q=0 can be represented as shown in Math. 81.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 81} \right\rbrack} & \; \\ {{{\left( {D^{a_{{\# 0},1,1}} + D^{a_{{\# 0},1,2}} + D^{a_{{\# 0},1,3}}} \right){X_{1}(D)}} + {\left( {D^{a_{{\# 0},1,3}} + D^{a_{{\# 0},2,2}} + \ldots + D^{a_{{\# 0},2,{r\; 2}}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{a_{{\# 0},{n - 1},1}} + D^{a_{{\# 0},{n - 1},2}} + \ldots + D^{a_{{\# 0},{n - 1},_{r_{n - 1}}}}} \right){X_{n - 1}(D)}} + {\left( {D^{b_{{\# 0},1}} + D^{b_{{\# 0},2}} + \ldots + D^{b_{{\# 0},s}}} \right){P(D)}}} = {{{\left( {D^{a_{{\# 0},1,3^{{{+ m}\; \gamma} + {m\; \delta}}}} + D^{a_{{\# 0},1,3^{{+ m}\; \delta}}} + D^{a_{{\# 0},1,3}}} \right){X_{1}(D)}} + {\left( {D^{a_{{\# 0},2,1}} + D^{a_{{\# 0},2,2}} + \ldots \mspace{14mu} + D^{a_{{\# 0},2,{r\; 2}}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{a_{{\# 0},{n - 1},1}} + D^{a_{{\# 0},{n - 1},2}} + \ldots + D^{a_{{\# 0},{n - 1},_{r_{n - 1}}}}} \right){X_{n - 1}(D)}} + {\left( {D^{b_{{\# 0},1}} + D^{b_{{\# 0},2}} + \ldots + D^{b_{{\# 0},2}}} \right){P(D)}}} = 0}} & \left( {{Math}.\mspace{14mu} 81} \right) \end{matrix}$

Here, even when a_(#0,1,1)>a_(#0,1,2)>a_(#0,1,3) is assumed, generality is not lost, and γ and δ become natural numbers. At this time, in Math. 81, when q=0, the term relating to X₁(D), that is, (D^(a#0,1,3+mγ+mδ)+D^(a#0,1,3+mδ)+D^(a#0,1,3)) X₁(D) is focused upon. At this time, a sub-matrix generated by extracting only a portion relating to X₁(D) in parity check matrix H is represented as shown in FIG. 37. In FIG. 37, h_(1,X1), h_(2,X1), . . . , h_(m−1,X1) are vectors generated by extracting only portions relating to X₁(D) when q=1, 2, . . . , m−1 in the parity check polynomial that satisfies zero of Math. 81, respectively.

At this time, the relationship as shown in FIG. 37 holds true because <1> of feature 1 holds true. Therefore, CL6 formed with a one shown by the symbol Δ as shown in FIG. 37 is always generated only in a sub-matrix generated by extracting only a portion relating to X₁(D) of the parity check matrix in Math. 81 regardless of γ and δ values.

When four or more X₁(D)-related terms are present, three terms are selected from among four or more terms and if a_(#0,1,i) mod m=a_(#0,1,j) mod m=a_(#0,1,k) mod m holds true in the selected three terms, CL6 is formed as shown in FIG. 37.

As shown above, when q=0, if a_(#0,1,i) mod m=a_(#0,1,j) mod m=a_(#0,1,k) mod m holds true about X₁(D), CL6 is present.

Furthermore, by also substituting X₁(D) for X₂(D), . . . , X_(n−1)(D), P(D), at least one CL6 occurs when C#1.1 or C#1.2 holds true.

Furthermore, in the same way of thinking, also for when q=1, . . . , m−1, at least one CL6 is present when C#1.1 or C#1.2 is satisfied.

Therefore, in the parity check polynomial that satisfies zero of Math. 80, when C#1.1 or C#1.2 holds true, at least one CL6 is generated.

-   -   □ (end of proof)

The #qth parity check polynomial that satisfies zero of a TV-m-LDPC-CC having a coding rate of (n−1)/n, which will be described hereinafter, is provided below based on Math. 74 (q=0, . . . , m−1):

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 82} \right\rbrack} & \; \\ {{{\left( {D^{a_{{\# q},1,1}} + D^{a_{{\# q},1,2}} + D^{a_{{\# q},1,3}}} \right){X_{1}(D)}} + {\left( {D^{a_{{\# q},2,1}} + D^{a_{{\# q},2,2}} + D^{a_{{\# q},2,3}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{a_{{\# q},{n - 1},1}} + D^{a_{{\# q},{n - 1},2}} + D^{a_{{\# q},{n - 1},3}}} \right){X_{n - 1}(D)}} + {\left( {D^{b_{{\# q},1}} + D^{b_{{\# q},2}} + D^{b_{{\# q},3}}} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 82} \right) \end{matrix}$

Here, in Math. 82, it is assumed that there are three terms in X₁(D), X₂(D), . . . , X_(n−1)(D) and P(D), respectively.

According to theorem 1, to suppress the occurrence of CL6, it is necessary to satisfy {a#q,p,1 mod m≠a#q,p,2 mod m}∩{a#q,p,1 mod m a#q,p,3 mod m}∩{a#q,p,2 mod m a#q,p,3 mod m} in Xq(D) of Math. 82. Similarly, it is necessary to satisfy{b#q,1 mod m≠b#q,2 mod m}∩{b#q,1 mod m≠b#q,3 mod m}∩{b#q,2 mod m≠b#q,3 mod m} in P(D). ∩ represents an intersection.

Then, according to feature 1, the following condition is considered as an example of the condition to be a regular LDPC code.

C#2: for ^(∀)q, (a_(#q,p,1) mod m, a_(#q,p,2) mod m, a_(#q,p,3) mod m)=(N_(p,1), N_(p,2), N_(p,3)) ∩ (b_(#q,1) mod m, b_(#q,2) mod m, b_(#q,3) mod m)=(M₁, M₂, M₃) holds true. However, {a_(#q,p,1) mod m≠a_(#q,p,2) mod m} ∩ {a_(#q,p,1) mod m≠a_(#q,p,3) mod m} ∩ {a_(#q,p,2) mod m≠a_(#q,p,3) mod m} and {b_(#q,1) mod m≠b_(#q,2) mod m} ∩ {b_(#q,1) mod m≠b_(#q,3) mod m} ∩ {b_(#q,2) mod m≠b_(#q,3) mod m} is satisfied. Here, the symbol ^(∀) of ^(∀)q is a universal quantifier and ^(∀)q means all q.

The following discussion will treat a regular TV-m-LDPC-CC that satisfies the condition of C#2.

[Code Design of Regular TV-m-LDPC-CC]

Non-Patent Literature 13 shows a decoding error rate when a uniformly random regular LDPC code is subjected to maximum likelihood decoding in a binary-input output-symmetric channel and shows that Gallager's belief function (see Non-Patent Literature 14) can be achieved by a uniformly random regular LDPC code. However, when BP decoding is performed, it is unclear whether or not Gallager's belief function can be achieved by a uniformly random regular LDPC code.

As it happens, an LDPC-CC belongs to a convolutional code. Non-Patent Literature 15 and Non-Patent Literature 16 describe the belief function of the convolutional code and describe that the belief depends on a constraint length. Since the LDPC-CC is a convolutional code, it has a structure specific to a convolutional code in a parity check matrix, but when the time-varying period is increased, positions at which ones of the parity check matrix exist approximate to uniform randomness. However, since the LDPC-CC is a convolutional code, the parity check matrix has a structure specific to a convolutional code and the positions at which ones exist depend on the constraint length.

From these results, inference of inference #1 on a code design is provided in a regular TV-m-LDPC-CC that satisfies the condition of C#2.

Inference #1:

When BP decoding is used, if time-varying period m of a TV-m-LDPC-CC increases in a regular TV-m-LDPC-CC that satisfies the condition of C#2, uniform randomness is approximated for positions at which ones exist in the parity check matrix and a code of high error correction capability is obtained.

The method of realizing inference #1 will be discussed below.

[Feature of Regular TV-m-LDPC-CC]

A feature will be described that holds true when drawing a tree about Math. 82 which is a #qth parity check polynomial that satisfies zero of a regular TV-m-LDPC-CC that satisfies the condition of C#2 having a coding rate of (n−1)/n, which will be treated in the present discussion.

Feature 2:

In a regular TV-m-LDPC-CC that satisfies the condition of C#2, when time-varying period m is a prime number, consider a case where C#3.1 holds true with attention focused on one of X₁(D), . . . , X_(n−1)(D).

C#3.1: In parity check polynomial (82) that satisfies zero of a regular TV-m-LDPC-CC that satisfies the condition of C#2, a_(#q,p,i,) mod m a_(#q,p,j) mod m holds true in X_(p)(D) for ^(∀)q (q=0, . . . , m−1), where i≠j.

In parity check polynomial (82) that satisfies zero of a regular TV-m-LDPC-CC that satisfies the condition of C#2, a case will be considered where a tree is drawn exclusively for variable nodes corresponding to D^(a#q,p,i)X_(p)(D) and D^(a#q,p,j)X_(p)(D) that satisfy C#3.1.

At this time, according to feature 1, there are check nodes corresponding to all #0 to #m-1 parity check polynomials for ^(∀)q in a tree whose starting point is a check node corresponding to a #qth parity check polynomial that satisfies zero of Math. 82.

Similarly, when time-varying period m is a prime number in a regular TV-m-LDPC-CC that satisfies the condition of C#2, consider a case where C#3.2 holds true with attention focused on the term of P(D).

C#3.2: In parity check polynomial (82) that satisfies zero of a regular TV-m-LDPC-CC that satisfies the condition of C#2, b_(#q,i) mod m≠b_(#q,j) mod m holds true in P(D) for ^(∀)q, where i≠j.

In parity check polynomial (82) that satisfies zero of a regular TV-m-LDPC-CC that satisfies the condition of C#2, a case will be considered where a tree is drawn exclusively for variable nodes corresponding to D^(b#q,i)P(D) and D^(b#q,j)P(D) that satisfy C#3.2.

At this time, according to feature 1, there are check nodes corresponding to all #0 to #m-1 parity check polynomials for ^(∀)q in a tree whose starting point is a check node corresponding to a #qth parity check polynomial that satisfies zero of Math. 82.

Example: In parity check polynomial (82) that satisfies zero of a regular TV-m-LDPC-CC that satisfies the condition of C#2, it is assumed that time-varying period m=7 (prime number) and (b_(#q,1), b_(#q,2))=(2, 0) holds true for ^(∀)q. Therefore, C#3.2 is satisfied.

When a tree is drawn exclusively for variable nodes corresponding to D^(b#q,1)P(D) and D^(b#q,2)P(D), a tree whose starting point is a check node corresponding to a #0th parity check polynomial that satisfies zero of Math. 82 is represented as shown in FIG. 38. As is clear from FIG. 38, time-varying period m=7 satisfies feature 2.

Feature 3:

In a regular TV-m-LDPC-CC that satisfies the condition of C#2, when time-varying period m is not a prime number, consider a case where C#4.1 holds true with attention focused on one of X₁(D), . . . , X_(n−1)(D).

C#4.1: In parity check polynomial (82) that satisfies zero of a regular TV-m-LDPC-CC that satisfies the condition of C#2, when a_(#q,p,i) mod m≧a_(#q,p,j) mod m in X_(p)(D) for ^(∀)q, |a_(#q,p,i) mod m−a_(#q,p,j) mod m| is a divisor other than one of m, where i≠j.

In parity check polynomial (82) that satisfies zero of the regular TV-m-LDPC-CC that satisfies the condition of C#2, a case will be considered where a tree is drawn exclusively for variable nodes corresponding to D^(a#q,p,i)X(D) and D^(a#q,p,j)X_(p)(D) that satisfy C#4.1. At this time, according to feature 1, in the tree whose starting point corresponds to the #q-th parity check polynomial that satisfies zero of Math. 82, there is no check node corresponding to all #0 to #m-1 parity check polynomials for ^(∀)q.

Similarly, in the regular TV-m-LDPC-CC that satisfies the condition of C#2, consider a case where C#4.2 holds true when time-varying period m is not a prime number with attention focused on the term of P(D).

C#4.2: In parity check polynomial (82) that satisfies zero of the regular TV-m-LDPC-CC that satisfies the condition of C#2, when b_(#q,i) mod m≧b_(#q,j) mod m in P(D) for ^(∀)q, |b_(#q,i) mod m−b_(#q,j) mod m| is a divisor other than one of m, where i #j.

In parity check polynomial (82) that satisfies zero of the regular TV-m-LDPC-CC that satisfies the condition of C#2, a case will be considered where a tree is drawn exclusively for variable nodes corresponding to D^(b#q,i)P(D) and D^(b#q,j)P(D) that satisfy C#4.2. At this time, according to feature 1, in the tree whose starting point is a check node corresponds to the #qth parity check polynomial that satisfies zero of Math. 82, there are not all check nodes corresponding to #0 to #m-1 parity check polynomials for ^(∀)q.

Example: In parity check polynomial (82) that satisfies zero of the regular TV-m-LDPC-CC that satisfies the condition of C#2, it is assumed that time-varying period m=6 (not a prime number) and (b_(#q,i), b_(#q,2))=(3, 0) holds true for ^(∀)q. Therefore, C#4.2 is satisfied.

When a tree is drawn exclusively for variable nodes D^(b#q,1)P(D) and D^(b#q,2)P(D), a tree whose starting point is a check node corresponding to #0th parity check polynomial that satisfies zero of Math. 82 is represented as shown in FIG. 39. As is clear from FIG. 39, time-varying period m=6 satisfies feature 3.

Next, in the regular TV-m-LDPC-CC that satisfies the condition of C#2, a feature will be described which particularly relates to when time-varying period m is an even number.

Feature 4:

In the regular TV-m-LDPC-CC that satisfies the condition of C#2, when time-varying period m is an even number, consider a case where C#5.1 holds true with attention focused on one of X₁(D), . . . , X_(n−1)(D).

C#5.1: In parity check polynomial (82) that satisfies zero of the regular TV-m-LDPC-CC that satisfies the condition of C#2, when a_(#q,p,i) mod m≧a_(#q,p,j) mod m in X_(p)(D) for ^(∀)q, |a_(#q,p,i) mod m−a_(#q,p,j) mod m| is an even number, where i≠j.

In parity check polynomial (82) that satisfies zero of the regular TV-m-LDPC-CC that satisfies the condition of C#2, a case will be considered where a tree is drawn exclusively for variable nodes corresponding to D^(a#q,p,i)P(D) and D^(a#q,p,j)P(D) that satisfy C#5.1. At this time, according to feature 1, when q is an odd number, there are only check nodes corresponding to odd-numbered parity check polynomials in a tree whose starting point is a check node corresponding to the #qth parity check polynomial that satisfies zero of Math. 82. On the other hand, when q is an even number, there are only check nodes corresponding to even-numbered parity check polynomials in a tree whose starting point is a check node corresponding to the #q-th parity check polynomial that satisfies zero of Math. 82.

Similarly, in the regular TV-m-LDPC-CC that satisfies the condition of C#2, when time-varying period m is an even number, consider a case where C#5.2 holds true with attention focused on the term of P(D).

C#5.2: In parity check polynomial (82) that satisfies zero of the regular TV-m-LDPC-CC that satisfies the condition of C#2, when b_(#q,i) mod m≧b_(#q,j) mod m in P(D) for ^(∀)q, |b_(#q,i) mod m−b_(#q,j) mod m| is an even number, where i≠j.

In parity check polynomial (82) that satisfies zero of the regular TV-m-LDPC-CC that satisfies the condition of C#2, a case will be considered where a tree is drawn exclusively for variable nodes corresponding to D^(b#q,i)P(D) and D^(b#q,j)P(D) that satisfy C#5.2. At this time, according to feature 1, when q is an odd number, only check nodes corresponding to odd-numbered parity check polynomials are present in a tree whose starting point is a check node corresponding to the #qth parity check polynomial that satisfies zero of Math. 82. On the other hand, when q is an even number, only check nodes corresponding to even-numbered parity check polynomials are present in a tree whose starting point is a check node corresponding to the #qth parity check polynomial that satisfies zero of Math. 82.

[Design Method of Regular TV-m-LDPC-CC]

A design policy will be considered for providing high error correction capability in the regular TV-m-LDPC-CC that satisfies the condition of C#2. Here, a case of C#6.1, C#6.2, or the like will be considered.

C#6.1: In parity check polynomial (82) that satisfies zero of the regular TV-m-LDPC-CC that satisfies the condition of C#2, a case will be considered where a tree is drawn exclusively for variable nodes corresponding to D^(a#q,p,i)P(D) and D^(a#q,p,j)P(D) (where i≠j). At this time, all check nodes corresponding to #0 to #m-1 parity check polynomials for ^(∀)q are not present in a tree whose starting point is a check node corresponding to the #qth parity check polynomial that satisfies zero of Math. 82.

C#6.2: In parity check polynomial (82) that satisfies zero of the regular TV-m-LDPC-CC that satisfies the condition of C#2, a case will be considered where a tree is drawn exclusively for variable nodes corresponding to D^(b#q,i)P(D) and D^(b#q,j)P(D) (where i≠j). At this time, all check nodes corresponding to #0 to #m-1 parity check polynomials for ^(∀)q are not present in a tree whose starting point is a check node corresponding to the #qth parity check polynomial that satisfies zero of Math. 82.

In such cases as C#6.1 and C#6.2, since all check nodes corresponding to #0 to #m-1 parity check polynomials for ^(∀)q are not present, the effect in inference #1 when the time-varying period is increased is not obtained. Therefore, with the above description taken into consideration, the following design policy is given to provide high error correction capability.

[Design policy]: In the regular TV-m-LDPC-CC that satisfies the condition of C#2, a condition of C#7.1 is provided with attention focused on one of X₁(D), . . . , X_(n−1)(D).

C#7.1: A case will be considered where a tree is drawn exclusively for variable nodes corresponding to D^(a#q,p,i)X(D) and D^(a#q,p,j)X_(p)(D) in parity check polynomial (82) that satisfies zero of a regular TV-m-LDPC-CC that satisfies the condition of C#2 (where i≠j). At this time, check nodes corresponding to all #0 to #m-1 parity check polynomials are present in a tree whose starting point is a check node corresponding to the #qth parity check polynomial that satisfies zero of Math. 82 for ^(∀)q.

Similarly, in the regular TV-m-LDPC-CC that satisfies the condition of C#2, the condition of C#7.2 is provided with attention focused on the term of P(D).

C#7.2: In parity check polynomial (82) that satisfies zero of the regular TV-m-LDPC-CC that satisfies the condition of C#2, a case will be considered where a tree is drawn exclusively for variable nodes corresponding to D^(b#q,i)P(D) and D^(b#q,j)P(D) (where i≠j). At this time, check nodes corresponding to all #0 to #m-1 parity check polynomials are present in a tree whose starting point is a check node corresponding to the #qth parity check polynomial that satisfies zero of Math. 82 for ^(∀)q.

In the present design policy, it is assumed that C#7.1 holds true for ^(∀)(i, j) and also holds true for ^(∀)p, and C#7.2 holds true for ^(∀)(i, j). Inference #1 is then satisfied.

Next, a theorem relating to the design policy will be described.

Theorem 2: Satisfying the design policy requires a_(#q,p,i) mod m≠a_(#q,p,j) mod m and b_(#q,i) mod m≠b_(#q,j) mod m to be satisfied, where i≠j.

Proof: When a tree is drawn exclusively for variable nodes corresponding to D^(a#q,p,i)X_(p)(D) and D^(a#q,p,j)X_(p)(D) in Math. 82 of the parity check polynomial that satisfies zero of the regular TV-m-LDPC-CC that satisfies the condition of C#2, if theorem 2 is satisfied, check nodes corresponding to all #0 to #m-1 parity check polynomials are present in a tree whose starting point is a check node corresponding to the #qth parity check polynomial that satisfies zero of Math. 82. This holds true for all p.

Similarly, when a tree is drawn exclusively for variable nodes corresponding to D^(b#q,i)P(D) and D^(b#q,j)P(D) in Math. 82 of the parity check polynomial that satisfies zero of the regular TV-m-LDPC-CC that satisfies the condition of C#2, if theorem 2 is satisfied, check nodes corresponding to all #0 to #m-1 parity check polynomials are present in a tree whose starting point is a check node corresponding to the #qth parity check polynomial that satisfies zero of Math. 82.

Therefore, theorem 2 is proven.

-   -   □ (end of proof)

Theorem 3: In the regular TV-m-LDPC-CC that satisfies the condition of C#2, when time-varying period m is an even number, there is no code that satisfies the design policy.

Proof: In parity check polynomial (82) that satisfies zero of the regular TV-m-LDPC-CC that satisfies the condition of C#2, when p=1, if it is possible to prove that the design policy is not satisfied, this means that theorem 3 has been proven. Therefore, the proof is continued assuming p=1.

In the regular TV-m-LDPC-CC that satisfies the condition of C#2, (N_(p,1), N_(p,2), N_(p,3))=(o, o, o)∪(o, o, e)∪(o, e, e)∪(e, e, e) can represent all cases. Here, o represents an odd number and e represents an even number. Therefore, (N_(p,1), N_(p,2), N_(p13))=(o, o, o)∪(o, o, e)∪(o, e, e)∪(e, e, e) shows that C#7.1 is not satisfied. ∪ represents a union.

When (Np,₁, Np,₂, Np,₃)=(o, o, o), C#5.1 is satisfied so that i, j=1, 2, 3 (i≠j) is satisfied in C#5.1 no matter what the value of the set of (i, j) may be.

When (Np,₁, Np,₂, Np,₃)=(o, o, e), C#5.1 is satisfied when (i, j)=(1, 2) in C#5.1.

When (Np,₁, Np,₂, Np,₃)=(o, e, e), C#5.1 is satisfied when (i, j)=(2, 3) in C#5.1.

When (Np,₁, Np,₂, Np,₃)=(e, e, e), C#5.1 is satisfied so that i, j=1, 2, 3 (i≠j) is satisfied in C#5.1 no matter what the value of the set of (i, j) may be.

Therefore, when (Np,₁, Np,₂, Np,₃)=(o, o, o)∪(o, o, e)∪(o, e, e)∪(e, e, e), there are always sets of (i, j) that satisfy C#5.1. Thus, theorem 3 has been proven according to feature 4.

-   -   □ (end of proof)

Therefore, to satisfy the design policy, time-varying period m must be an odd number. Furthermore, to satisfy the design policy, the following conditions are effective according to feature 2 and feature 3.

Time-varying period m is a prime number.

-   -   Time-varying period m is an odd number and the number of         divisors of m is small.

Especially, when the condition that time-varying period m is an odd number and the number of divisors of m is small is taken into consideration, the following cases can be considered as examples of conditions under which codes of high error correction capability are likely to be achieved:

(1) The time-varying period is assumed to be α×β,

where α and β are odd numbers other than one and are prime numbers.

(2) The time-varying period is assumed to be α^(n),

where α is an odd number other than one and is a prime number, and n is an integer equal to or greater than two.

(3) The time-varying period is assumed to be α×β×γ,

where α, β, and γ are odd numbers other than one and are prime numbers.

However, when z mod m (z is an integer equal to or greater than zero) is computed, there are m values that can be taken, and therefore the number of values taken when z mod m is computed increases as m increases. Therefore, when m is increased, it is easier to satisfy the above-described design policy. However, when time-varying period m is assumed to be an even number, this does not mean that a code having high error correction capability cannot be obtained.

4. Example of Code Search and Characteristic Evaluation

Example of Code Search:

Table 9 shows examples of LDPC-CC (#1 and #2 in Table 9) based on parity check polynomials of time-varying periods of two and three discussed so far. In addition, Table 9 also shows an example of regular TV11-LDPC-CC (#3 in Table 9) of a time-varying period of 11 that satisfies the aforementioned design policy. However, it is assumed that the coding rate set for the code search is R=⅔ and maximum constraint length K_(max) is 600.

TABLE 9 Exampe of LDPC-CC based on parity check polynomial of codding rate R = 2/3 Index Codes K_(max) R #1 TV2 600 ⅔ (A_(X1,0)(D), A_(X2,0)(D), B₀(D)) = (D⁴⁹⁰ + D²⁶⁹ + D³³ + 1, D²⁶⁰ + D¹⁹⁸ + D¹⁰ + 1, D¹⁰ + 1, D⁵⁴⁸ + D²⁶⁷ + D²²³ + 1) (A_(X1,1)(D), A_(X2,1)(D), B₁(D)) = (D⁵⁵⁸ + D²¹⁵ + D¹²⁴ + 1, D⁵⁹¹ + D¹⁵⁴ + D⁷ + 1, D⁵⁹⁴ + D⁴²⁵ + D¹³⁷ + 1) #2 TV3 600 ⅔ (A_(X1,0)(D), A_(X2,0)(D), B₀(D)) = (D⁵⁰⁰ + D³¹⁰ + 1, D⁵⁰⁶ + D¹⁴⁵ + 1, D⁵⁰² + D¹⁸⁸ + 1) (A_(X1,1)(D), A_(X2,1)(D), B₁(D)) = (D⁴¹³ + D¹⁷⁵ + 1, D⁴⁵⁵ + D¹⁷⁸ + 1, D⁵¹⁴ + D⁴⁵² + 1) (A_(X1,2)(D), A_(X2,2)(D), B₂(D)) = (D⁵²³ + D¹⁶⁴ + 1, D⁵⁶⁸ + D¹⁴⁰ + 1, D²⁵⁷ + D²⁰⁸ + 1) #3 TV11 600 ⅔ (A_(X1,0)(D), A_(X2,0)(D), B₀(D)) = (D⁵⁵² + D¹⁵⁰ + 1, D⁵⁷⁵ + D⁸³ + 1, D⁵⁸⁸ + D²³ + 1) (A_(X1,1)(D), A_(X2,1)(D), B₁(D)) = (D⁵⁸⁵ + D³⁹² + 1, D⁵⁹⁷ + D⁵²³ + 1, D²⁵⁴ + D⁴⁹ + 1) (A_(X1,2)(D), A_(X2,2)(D), B₂(D)) = (D⁵⁴¹ + D⁴⁶⁹ + 1, D⁵²⁰ + D¹⁷ + 1, D⁴⁰⁸ + D¹¹⁵ + 1) (A_(X1,3)(D), A_(X2,3)(D), B₃(D)) = (D⁵⁶³ + D²⁸² + 1, D⁵³¹ + D²⁸¹ + 1, D⁵⁴⁴ + D⁴⁷⁴ + 1) (A_(X1,4)(D), A_(X2,4)(D), B₄(D)) = (D⁵⁷⁹ + D⁵⁴¹ + 1, D⁵⁷⁵ + D²⁹² + 1, D³³⁵ + D¹⁵⁵ + 1) (A_(X1,5)(D), A_(X2,5)(D), B₅(D)) = (D⁵⁹⁶ + D²⁷¹ + 1, D⁵⁷⁵ + D⁵²³ + 1, D⁵²⁹ + D³⁰² + 1) (A_(X1,6)(D), A_(X2,6)(D), B₆(D)) = (D⁵⁵² + D⁶² + 1, D⁵⁴⁵ + D⁵³¹ + 1, D⁵⁹⁵ + D⁵⁶⁶ + 1) (A_(X1,7)(D), A_(X2,7)(D), B₇(D)) = (D⁵⁹⁶ + D⁵⁵⁷ + 1, D⁵²⁰ + D¹⁹³ + 1, D¹⁴⁸ + D¹⁴⁴ + 1) (A_(X1,8)(D), A_(X2,8)(D), B₈(D)) = (D⁵⁹⁶ + D⁵²⁴ + 1, D⁵⁷⁵ + D³⁵⁸ + 1, D³⁵⁷ + D²⁹⁸ + 1) (A_(X1,9)(D), A_(X2,9)(D), B₉(D)) = (D⁵⁵² + D¹⁵⁰ + 1, D⁵⁶⁴ + D³⁹ + 1, D⁴⁶³ + D⁶⁰ + 1) (A_(X1,10)(D), A_(X2,10)(D), B₁₀(D)) = (D⁵⁴¹ + D⁵¹³ + 1, D⁵³¹ + D⁷² + 1, D⁵²² + D⁴⁷⁴ + 1)

Evaluation of BER Characteristics:

FIG. 40 shows a relationship of BER (BER characteristic) with respect to E_(b)/N_(o) (energy per bit-to-noise spectral density ratio) of a TV2-LDPC-CC (#1 in Table 9), regular TV3-LDPC-CC (#2 in Table 9) and regular TV11-LDPC-CC (#3 in Table 9) of a coding rate of R=⅔ in an AWGN (Additive White Gaussian Noise) environment. However, in simulation, it is assumed that the modulation scheme is BPSK (Binary Phase Shift Keying), BP decoding based on Normalized BP (1/v=0.75) is used as the decoding method and the number of iteration I=50. Here, v is a normalization coefficient.

As shown in FIG. 40, when E_(b)/N_(o)=2.0 or greater, it is clear that the BER characteristic of the regular TV11-LDPC-CC is better than the BER characteristics of TV2-LDPC-CC and TV3-LDPC-CC.

From the above, it is possible to confirm that the TV-m-LDPC-CC of a greater time-varying period based on the aforementioned design policy has better error correction capability than that of the TV2-LDPC-CC and TV3-LDPC-CC and confirm the effectiveness of the design policy discussed above.

Embodiment 7

The present embodiment will describe a reordering method of the erasure correction coding processing section in a packet layer when an LDPC-CC of a coding rate of (n−1)/n and a time-varying period of h (h is an integer equal to or greater than four) described in Embodiment 1 is applied to an erasure correction scheme. The configuration of the erasure correction coding processing section according to the present embodiment is common to that of the erasure correction coding processing section shown in FIG. 22 or FIG. 23 or the like, and will therefore be described using FIG. 22 or FIG. 23.

Aforementioned FIG. 8 shows an example of parity check matrix when an LDPC-CC of a coding rate of (n−1)/n and a time-varying period of m described in Embodiment 1 is used. A gth (g=0, 1, . . . , h−1) parity check polynomial having a coding rate of (n−1)/n and a time-varying period of h is represented as shown in Math. 83.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 83} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 83} \right) \end{matrix}$

In Math. 83, a_(#g,p,1) and a_(#g,p,2) are natural numbers equal to or greater than one, and hold a_(#g,p,1)≠a_(#g,p,2). Also, b_(#g,1) and b_(#g,2) are natural numbers equal to or greater than one and hold b_(#g,1)≠b_(#g,2) (g=0, 1, 2, . . . , h−2, h−1; p=1, 2, . . . , n−1).

Referring to the parity check matrix shown in FIG. 8, the parity check matrix corresponding to the gth (g=0, 1, . . . , h−1) parity check polynomial (83) of a coding rate of(n−1)/n and a time-varying period of h is represented as shown in FIG. 41. At this time, information X1, X2, . . . , Xn−1 and parity P at point in time k are represented by X_(1,k), X_(2,k), . . . , X_(n−1,k), and P_(k), respectively.

In FIG. 41, a portion assigned reference sign 5501 is part of a row of the parity check matrix and is a vector corresponding to a 0th parity check polynomial that satisfies zero of Math. 83. Similarly, a portion assigned reference sign 5502 is part of a row of the parity check matrix and is a vector corresponding to a first parity check polynomial that satisfies zero of Math. 83.

The string of five ones assigned reference sign 5503 corresponds to terms of X1(D), X2(D), X3(D), X4(D), and P(D) of the 0th parity check polynomial that satisfies zero of Math. 83. When compared with X_(1,k), X_(2,k), . . . , X_(n−1,k), and P_(k) at point in time k, the one of reference sign 5510 corresponds to X_(1,k), the one of reference sign 5511 corresponds to X_(2,k), the one of reference sign 5512 corresponds to X_(3,k), the one of reference sign 5513 corresponds to X_(4,k), and the one of reference sign 5514 corresponds to P_(k) (see Math. 60).

Similarly, the string of five ones assigned reference sign 5504 corresponds to terms of X1(D), X2(D), X3(D), X4(D), and P(D) of the first parity check polynomial that satisfies zero of Math. 83. When compared with X_(1,k+1), X_(2,k+1), . . . , X_(n−1,k+1), and P_(k+1) at point in time k+1, the one of reference sign 5515 corresponds to X_(1,k+1), the one of reference sign 5516 corresponds to X_(2,k+1), the one of reference sign 5517 corresponds to X₃,k+₁, the one of reference sign 5518 corresponds to X_(4,k+1), and the one of reference sign 5519 corresponds to P_(k+1) (see Math. 60).

Next, the method of reordering information bits of an information packet when information packets and parity packets are configured separately (see FIG. 22) is described using FIG. 42.

FIG. 42 shows an example of reordering pattern when information packets and parity packets are configured separately.

Pattern $1 shows a pattern example with low erasure correction capability and pattern $2 shows a pattern example with high erasure correction capability. In FIG. 42, #Z indicates data of a Zth packet.

In pattern $1, X_(1,k) and X_(4,k) among X_(1,k), X_(2,k), X_(3,k), and X_(4,k) at point in time k are data of the same packet (packet #1). Similarly, X₃,k+₁ and X_(4,k+1) at point in time k+1 are also data of the same packet (packet #2). At this time, when, for example, packet #1 is lost (loss), it is difficult to reconstruct lost bits (X_(1,k) and X_(4,k)) through row computation in BP decoding. Similarly, when packet #2 is lost (loss), it is difficult to reconstruct lost bits (X₃,k+₁ and X_(4,k+1)) through row computation in BP decoding. From the points described above, pattern $1 can be said to be a pattern example with low erasure correction capability.

On the other hand, in pattern $2, with regard to X_(1,k), X_(2,k), X_(3,k), and X_(4,k), it is assumed that X_(1,k), X_(2,k), X_(3,k), and X_(4,k) are comprised of data with different packet numbers at all times k. At this time, since it is more likely to be able to reconstruct lost bits through row computation in BP decoding, pattern $2 can be said to be a pattern example with high erasure correction capability.

In this way, when information packets and parity packets are configured separately (see FIG. 22), the reordering section 2215 may adopt pattern $2 described above as the reordering pattern. That is, the reordering section 2215 receives information packet 2243 (information packets #1 to #n) as input and may reorder the sequence of information so that data of different packet numbers are assigned to X_(1,k), X_(2,k), X₃,k and X_(4,k) at all times k.

Next, the method of reordering information bits in an information packet when information packets and parity packets are configured without distinction (see FIG. 23) is described using FIG. 43.

FIG. 43 shows an example of reordering pattern when information packets and parity packets are configured without distinction.

In pattern $1, X_(1,k), and P_(k) among X_(1,k), X_(2,k), X_(3,k), X_(4,k), and P_(k) at point in time k are comprised of data of the same packet. Similarly, X_(3,k+1) and X_(4,k+1) at point in time k+1 are also comprised of data of the same packet and X_(2,k+2), and P_(k+2) at point in time k+2 are also comprised of data of the same packet.

At this time, when, for example, packet #1 is lost, it is difficult to reconstruct lost bits (X_(1,k) and P_(k)) through row computation in BP decoding. Similarly, when packet #2 is lost, it is not possible to reconstruct lost bits (X_(3,k+1) and X_(4,k)) through row computation in BP decoding, and when packet #5 is lost, it is difficult to reconstruct lost bits (X_(2,k+2) and P_(k+2)) through row computation in BP decoding. From the point described above, pattern $1 can be said to be a pattern example with low erasure correction capability.

Conversely, in pattern $2, with regard to X_(1,k), X_(2,k), X_(3,k), X_(4,k) and P_(k), it is assumed that X_(1,k), X_(2,k), X_(3,k), X_(4,k), and P_(k) are comprised of data of different packet numbers at all times k. At this time, since it is more likely to be able to reconstruct lost bits through row computation in BP decoding, pattern $2 can be said to be a pattern example with high erasure correction capability.

Thus, when information packets and parity packets are configured without distinction (see FIG. 23), the erasure correction coding section 2314 may adopt pattern $2 described above as the reordering pattern. That is, the erasure correction coding section 2314 may reorder information and parity so that information X_(1,k), X_(2,k), X_(3,k), X_(4,k) and parity P_(k) are assigned to packets with different packet numbers at all times k.

As described above, the present embodiment has proposed a specific configuration for improving erasure correction capability as a reordering method at the erasure correction coding section in a packet layer when the LDPC-CC of a coding rate of (n−1)/n and a time-varying period of h (h is an integer equal to or greater than four) described in Embodiment 1 is applied to an erasure correction scheme. However, time-varying period h is not limited to an integer equal to or greater than four, but even when the time-varying period is two or three, erasure correction capability can be improved by performing similar reordering.

Embodiment 8

The present Embodiment describes details of the encoding method (encoding method at packet level) in a layer higher than the physical layer.

FIG. 44 shows an example of encoding method in a layer higher than the physical layer. In FIG. 44, it is assumed that the coding rate of an error correction code is ⅔ and the data size except redundant information such as control information and error detection code in one packet is 512 bits.

In FIG. 44, an encoder that performs encoding in a layer higher than the physical layer (encoding at a packet level) performs encoding on information packets #1 to #8 after reordering and obtains parity bits. The encoder then bundles the parity bits obtained into a unit of 512 bits to configure one parity packet. Here, since the coding rate supported by the encoder is ⅔, four parity packets, that is, parity packets #1 to #4 are generated. Thus, the information packets described in the other embodiments correspond to information packets #1 to #8 in FIG. 44 and the parity packets correspond to parity packets #1 to #4 in FIG. 44.

One simple method of setting the size of a parity packet is a method that sets the same size for a parity packet and an information packet. However, these sizes need not be the same.

FIG. 45 shows an example of encoding method in a layer higher than the physical layer different from FIG. 44. In FIG. 45, information packets #1 to #512 are original information packets and the data size of one packet except redundant information such as control information, error detection code is assumed to be 512 bits. The encoder then divides information packet #k (k=1, 2, . . . , 511, 512) into eight portions and generates sub-information packets #k-1, #k-2, . . . , and #k-8.

The encoder then applies encoding to sub-information packets #1-n, #2-n, #3-n, . . . , #511-n, #512-n (n=1, 2, 3, 4, 5, 6, 7, 8) and forms parity group #n. The encoder then divides parity group #n into m portions as shown in FIG. 46 and forms (sub-) parity packets #n-1, #n-2, . . . , and #n-m.

Thus, the information packets described in Embodiment 5 correspond to information packets #1 to #512 in FIG. 45 and parity packets are (sub-) parity packets #n-1, #n-2, . . . , and #n-m (n=1, 2, 3, 4, 5, 6, 7, 8) in FIG. 37. At this time, one information packet has 512 bits, while one parity packet need not always have 512 bits. That is, one information packet and one parity packet do not always need to have the same size.

The encoder may regard a sub-information packet itself obtained by dividing an information packet as one information packet.

As another method, Embodiment 5 can also be implemented by considering the information packets described in Embodiment 5 as sub-information packets #k-1, #k-2, . . . , and #k-8 (k=1, 2, . . . , 511, 512) described in the present embodiment. Particularly, Embodiment 5 has described the method of inserting a termination sequence and the method of configuring a packet. Here, Embodiment 5 can also be implemented by considering sub-information packets and sub-parity packets in the present embodiment as sub-information packets and parity packets described in Embodiment 5. However, the embodiment can be more easily implemented if the number of bits constituting a sub-information packet is the same as the number of bits constituting a sub-parity packet.

In Embodiment 5, data other than information (e.g. error detection code) are added to an information packet. Furthermore, in Embodiment 5, data other than parity bits is added to a parity packet. However, the conditions relating to termination shown in Math. 62 through Math. 70 become important conditions when applied to a case not including data other than information bits and parity bits, and a case relating to the number of information bits of an information packet and a case relating to the number of parity bits of a parity packet.

Embodiment. 9

Embodiment 1 has described an LDPC-CC having good characteristics. The present embodiment will describe a shortening method that makes a coding rate variable when an LDPC-CC described in Embodiment 1 is applied to a physical layer. Shortening refers to generating a code having a second coding rate from a code having a first coding rate (first coding rate>second coding rate).

Hereinafter, a shortening method of generating an LDPC-CC having a coding rate of ⅓ from an LDPC-CC having a time-varying period of h (h is an integer equal to or greater than four) of a coding rate of ½ described in Embodiment 1 will be described as an example.

A case will be considered where a gth (g=0, 1, . . . , h−1) parity check polynomial having a coding rate of ½ and a time-varying period of h is represented as shown in Math. 84.

[Math. 84]

(D ^(a#g,1,1) +D ^(#g,1,2)+1)X ₁(D)+(D ^(#g,1) +D ^(b#g,2)+1)P(D)=0  (Math. 84)

It is assumed in Math. 84 that a_(#g,1,1) and a_(#g,1,2) are natural numbers equal to or greater than one and that a_(#g,1,1)≠a_(#g,1,2) holds true. Furthermore, it is assumed that b_(#g,1) and b_(#g,2) are natural numbers equal to or greater than one and that b_(#g,1)≠b_(#g,2) holds true (g=0, 1, 2, . . . , h−2, h−1).

Math. 84 is assumed to satisfy Condition #17 below.

<Condition #17>

a_(#0, 1, 1)%  h = a_(#1, 1, 1)%  h = a_(#2, 1, 1)%  h = a_(#3, 1, 1)%  h = … = a_(#g, 1, 1)%  h = … = a_(#h − 2, 1, 1)%  h = a_(#h − 1, 1, 1)%  h = v_(p = 1)(v_(p = 1):  fixed-value) b_(#0, 1)%  h = b_(#1, 1)%  h = b_(#2, 1)%  h = b_(#3, 1)%  h = … = b_(#g, 1)%  h = … = b_(#h − 2, 1)%  h = b_(#h − 1, 1)%  h = w  (w:  fixed-value) a_(#0, 1, 2)%  h = a_(#1, 1, 2)%  h = a_(#2, 1, 2)%  h = a_(#3, 1, 2)%  h = … = a_(#g, 1, 2)%  h = … = a_(#h − 2, 1, 2)%  h = a_(#h − 1, 1, 2)%  h = y_(p = 1)(y_(p = 1):  fixed-value) b_(#0, 2)%  h = b_(#1, 2)%  h = b_(#2, 2)%  h = b_(#3, 2)%  h = … = b_(#g, 2)%  h = … = b_(#h − 2, 2)%  h = b_(#h − 1, 2)%  h = z  (z:  fixed-value)

When a parity check matrix is created as in the case of Embodiment 4, if it is assumed that information and parity at point in time i are Xi and Pi respectively, codeword w is represented by w=(X0, P0, X1, P1, . . . , Xi, Pi, . . . )^(T).

At this time, the shortening method of the present embodiment employs the following methods.

[Method #1-1]

Method #1-1 inserts known information (e.g. zeroes) in information X on a regular basis (insertion rule of method #1-1). For example, known information is inserted into hk (=h×k) bits of information 2hk (=2×h×k) bits (insertion step) and encoding is performed on information of 2hk bits including known information using an LDPC-CC of a coding rate of ½. Parity of 2hk bits is generated (coding step) in this way. At this time, the known information of hk bits of the information of 2hk bits is designated bits not to transmit (transmission step). A coding rate of ⅓ can be realized in this way.

The known information is not limited to zero, but may be one or a predetermined value other than one and may be reported to a communication device of the communicating party or determined as a specification.

Hereinafter, differences from the insertion rule of method #1-1 will be mainly described.

[Method #1-2]

Unlike method #1-1, as shown in FIG. 47, method #1-2 assumes 2×h×2k bits formed with information and parity as one period and inserts known information at the same position at each period (insertion rule of method #1-2).

The insertion rule for known information (insertion rule of method #1-2) will be described focused on the differences from method #1-1 using FIG. 48 as an example.

FIG. 48 shows an example where when the time-varying period is four, 16 bits formed with information and parity are designated one period. At this time, method #1-2 inserts known information (e.g. a zero (or a one or a predetermined value)) in X0, X2, X4, and X5 at the first period.

Furthermore, method #1-2 inserts known information (e.g. a zero (or a one or a predetermined value)) in X8, X10, X12, and X13 at the next period, . . . , and inserts known information in X8i, X8i+2, X8i+4, and X8i+5 at an ith period. From the ith period onward, method #1-2 inserts known information at the same positions at each period.

Next, as with Method #1-1, method #1-2 inserts known information in, for example, hk bits of information 2hk bits and performs encoding on information of 2hk bits including known information using an LDPC-CC having a coding rate of ½.

Thus, parity of 2hk bits is generated. At this time, when known information of hk bits is assumed to be bits not to transmit, having coding rate of ⅓ can be realized.

Hereinafter, the relationship between positions at which known information is inserted and error correction capability will be described using FIG. 49 as an example.

FIG. 49 shows the correspondence between part of check matrix H and codeword w (X0, P0, X1, P1, X2, P2, . . . , X9, P9). In row 4001 in FIG. 49, elements that are ones are arranged in columns corresponding to X2 and X4. Furthermore, in row 4002 in FIG. 49, elements that are ones are arranged in columns corresponding to X2 and X9. Therefore, when known information is inserted in X2, X4, and X9, all information corresponding to columns whose elements are ones in row 4001 and row 4002 is known. Therefore, since unknown values are only parity in row 4001 and row 4002, a log-likelihood ratio with high belief can be updated through row computation in BP decoding.

That is, when realizing a lower coding rate than the original coding rate by inserting known information, it is important, from the standpoint of achieving high error correction capability, to increase the number of rows, all of which correspond to known information or rows, a large number of which correspond to known information (e.g. all bits except one bit correspond to known information) of the information out of the parity and information in each row of a check matrix, that is, parity check polynomial.

In the case of a time-varying LDPC-CC, there is regularity in a pattern of parity check matrix H in which elements that are ones are arranged. Therefore, by inserting known information on a regular basis at each period based on parity check matrix H, it is possible to increase the number of rows whose unknown values only correspond to parity or rows with fewer unknown information bits when parity and information are unknown. As a result, it is possible to provide an LDPC-CC having a coding rate of ⅓ providing good characteristics.

According to following Method #1-3, it is possible to realize an LDPC-CC having high error correction capability, of a coding rate of ⅓ and a time-varying period of h (h is an integer equal to or greater than four) from the LDPC-CC having good characteristics, of a coding rate of ½ and a time-varying period of h described in Embodiment 1.

[Method #1-3]

Method #1-3 inserts known information (e.g. zeroes) in h×k X_(j) terms out of 2×h×k bits of information X_(2hi), X_(2hi+1), X_(2hi+2), . . . , X_(2hi+2h−1), . . . , X_(2h(i+k−1)), X_(2h(i+k−1)+1), X_(2h(i+k−1)+2), . . . , X_(2h(i+k−1)+2h−1) for a period of 2×h×2k bits formed with information and parity (since parity is included).

Here, j takes a value of one of 2hi to 2h(i+k−1)+2h−1 and h×k different values are present. Furthermore, known information may be a one or a predetermined value.

At this time, when known information is inserted in h×k X_(j) terms, it is assumed that, of the remainders after dividing h×k different j by h:

the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (v_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less;

the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less; and

the difference between the number of remainders that become (v_(p=1)+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less. (For v_(p=1), y_(p=1) see Condition #7-1 and Condition #7-2.) At least one such γ is present.

Thus, by providing a condition for positions at which known information is inserted, it is possible to increase the number of rows in which all information is known information or rows with many pieces of known information (e.g. all bits except one bit correspond to known information) as much as possible in each row of parity check matrix H, that is, a parity check polynomial.

The LDPC-CC having a time-varying period of h described above satisfies Condition #17. At this time, since the gth (g=0, 1, . . . , h−1) parity check polynomial is represented as shown in Math. 84, the sub-matrix (vector) corresponding to the parity check polynomial of Math. 84 in the parity check matrix is represented as shown in FIG. 50.

In FIG. 50, the one of reference sign 4101 corresponds to D^(a#g,1,1)X₁(D). Furthermore, the one of reference sign 4102 corresponds to D^(a#g,1,2)X₁(D). Furthermore, the one of reference sign 4103 corresponds to X₁(D). Furthermore, the one of reference sign 4104 corresponds to P(D).

At this time, when the one of reference sign 4103 is represented by Xj assuming the time thereof to be j, the one of reference sign 4101 is represented by Xj−a#g,1,1 and the one of reference sign 4102 is represented by Xj−a#g,1,2.

Therefore, when j is considered as a reference position, the one of reference sign 4101 is located at a position corresponding to a multiple of v_(p=1) and the one of reference sign 4102 is located at a position corresponding to a multiple of y_(p=1). Furthermore, this does not depend on the g.

When this is taken into consideration, the following can be said. That is, Method #1-3 is one of important requirements to increase the number of rows whose all information is known information or rows with many pieces of known information (e.g. known information except for one bit) as much as possible in each row of parity check matrix H, that is, in the parity check polynomial by providing conditions for positions at which known information is inserted.

As an example, it is assumed that time-varying period h=4 and v_(p=1)=1, y_(p=1)=2. In FIG. 48, a case will be considered where assuming 4×2×2×1 bits (that is, k=1) to be one period, known information (e.g. a zero (or a one or a predetermined value)) is inserted in X_(8i), X_(8i+2), X_(8i+4), X_(8i+5) out of information and parity X_(8i), P_(8i), X_(8i+1), P_(8i+1), X_(8i+2), P_(8i+2), X_(8i+3), P_(8i+3), X_(8i+4), P_(8i+4), X_(8i+5), P_(8i+5), X_(8i+6), P_(8i+6), X_(8i+7), P_(8i+7).

In this case, as j of X_(j) in which known information is inserted, there are four different values of 8i, 8i+2, 8i+4, and 8i+5. At this time, the remainder after dividing 8i by four is zero, the remainder after dividing 8i+2 by four is two, the remainder after dividing 8i+4 by four is zero, and the remainder after dividing 8i+5 by four is one. Therefore, the number of remainders which become zero is two, the number of remainders which become v_(p=1)=1 is one, the number of remainders which become y_(p=1)=2 is one, and the insertion rule of above Method #1-3 is satisfied (where γ=0). Therefore, the example shown in FIG. 48 can be said to be an example that satisfies the insertion rule of above Method #1-3.

As a more severe condition of Method #1-3, the following Method #1-3′ can be provided.

[Method #1-3′]

Method #1-3′ inserts known information (e.g. a zero) in h×k X_(j) terms of 2×h×k bits of information X_(2hi), X_(2hi+1), X_(2hi+2), . . . , X_(2hi+2h−1), . . . , X_(2h(i+k−1)), X_(2h(i+k−1)+1), X_(2h(i+k−1)+2), . . . , X_(2h(i+k−1)+2h−1) for a period of 2×h×2k bits formed with information and parity (since parity is included). However, j takes the value of one of 2hi through 2h(i+k−1)+2h−1 and there are h×k different values. Furthermore, the known information may be a one or a predetermined value.

At this time, when known information is inserted in h×k Xj terms, it is assumed that, of the remainders after dividing h×k different j terms by h:

the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (v_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less;

the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less; and

the difference between the number of remainders that become (v_(p=1)+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less. (For v_(p=1), y_(p=1), see Condition #7-1 and Condition #7-2.) At least one such γ is present.

For γ that does not satisfy the above description, the number of remainders that become (0+γ) mod h, the number of remainders that become (v_(p=1)+γ) mod h, and the number of remainders that become (y_(p=1)+γ) mod h all become zero.

Furthermore, to implement Method #1-3 more effectively, one of the following three conditions may be satisfied in an LDPC-CC based on the aforementioned parity check polynomial with Condition #17 of a time-varying period of h (insertion rule of method #1-3′). However, it is assumed that v_(p=1)<y_(p=1), in Condition #17.

y _(p=1) −v _(p=1) =v _(p=1)−0; that is, y _(p=1)=2×v _(p=1),

v _(p=1)−0=h−y _(p=1); that is, v _(p=1) =h−y _(p=1)

h−y _(p=1) =y _(p=1) −v _(p=1); that is, h=2×y _(p=1) −v _(p=1)

When this condition is added, by providing a condition for positions at which known information is inserted, it is possible to increase the number of rows whose all information is known information or rows with many pieces of known information (e.g. all bits except one bit correspond to known information) as much as possible in each row of parity check matrix H, that is, a parity check polynomial. This is because the LDPC-CC has a specific configuration of parity check matrix.

Next, a shortening method will be described which realizes a lower coding rate than a coding rate of (n−1)/n from an LDPC-CC having a time-varying period of h (h is an integer equal to or greater than four) of a coding rate of (n−1)/n (n is an integer equal to or greater than two) described in Embodiment 1.

A case will be considered where a gth (g=0, 1, . . . , h−1) parity check polynomial having a coding rate of (n−1)/n and a time-varying period of h is represented as shown in Math. 85.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 85} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 85} \right) \end{matrix}$

In Math. 85, it is assumed that a_(#g,p,1) and a_(#g,p,2) are natural numbers equal to or greater than one and a_(#g,p,1)≠a_(#g,p,2) holds true. Furthermore, it is assumed that b_(#g,1) and b_(#g,2) are natural numbers equal to or greater than one and b_(#g,1)≠b_(#g,2) holds true (g=0, 1, 2, . . . , h−2, h−1; p=1, 2, . . . , n−1).

Math. 84 is assumed to satisfy Condition #18-1 and Condition #18-2 below.

<Condition #18-1>

a_(#0, 1, 1)%  h = a_(#1, 1, 1)%  h = a_(#2, 1, 1)%  h = a_(#3, 1, 1)%  h = … = a_(#g, 1, 1)%  h = … = a_(#h − 2, 1, 1)%  h = a_(#h − 1, 1, 1)%  h = v_(p = 1)(v_(p = 1):  fixed-value) a_(#0, 2, 1)%  h = a_(#1, 2, 1)%  h = a_(#2, 2, 1)%  h = a_(#3, 2, 1)%  h = … = a_(#g, 2, 1)%  h = … = a_(#h − 2, 2, 1)%  h = a_(#h − 1, 2, 1)%  h = v_(p = 2)(v_(p = 2):  fixed-value) a_(#0, 3, 1)%  h = a_(#1, 3, 1)%  h = a_(#2, 3, 1)%  h = a_(#3, 3, 1)%  h = … = a_(#g, 3, 1)%  h = … = a_(#h − 2, 3, 1)%  h = a_(#h − 1, 3, 1)%  h = v_(p = 3)(v_(p = 3):  fixed-value) a_(#0, 4, 1)%  h = a_(#1, 4, 1)%  h = a_(#2, 4, 1)%  h = a_(#3, 4, 1)%  h = … = a_(#g, 4, 1)%  h = … = a_(#h − 2, 4, 1)%  h = a_(#h − 1, 4, 1)%  h = v_(p = 4)(v_(p = 4):  fixed-value)      ⋮ a_(#0, k, 1)%  h = a_(#1, k, 1)%  h = a_(#2, k, 1)%  h = a_(#3, k, 1)%  h = … = a_(#g, k, 1)%  h = … = a_(#h − 2, k, 1)%  h = a_(#h − 1, k, 1)%  h = v_(p = k)(v_(p = k):  fixed-value)      ⋮      (therefore, k = 1, 2, …  , n − 1) a_(#0, n − 2, 1)%  h = a_(#1, n − 2, 1)%  h = a_(#2, n − 2, 1)%  h = a_(#3, n − 2, 1)%  h = … = a_(#g, n − 2, 1)%  h = … = a_(#h − 2, n − 2, 1)%  h = a_(#h − 1, n − 2, 1)%  h = v_(p = n − 2)(v_(p = n − 2):  fixed-value) a_(#0, n − 1, 1)%  h = a_(#1, n − 1, 1)%  h = a_(#2, n − 1, 1)%  h = a_(#3, n − 1, 1)%  h = … = a_(#g, n − 1, 1)%  h = … = a_(#h − 2, n − 1, 1)%  h = a_(#h − 1, n − 1, 1)%  h = v_(p = n − 1)(v_(p = n − 1):  fixed-value) b_(#0, 1)%  h = b_(#1, 1)%  h = b_(#2, 1)%  h = b_(#3, 1)%  h = … = b_(#g, 1)%  h = … = b_(#h − 2, 1)%  h = b_(#h − 1, 1)%  h = w(w:  fixed-value)

<Condition #18-2>

a_(#0, 1, 2)%  h = a_(#1, 1, 2)%  h = a_(#2, 1, 2)%  h = a_(#3, 1, 2)%  h = … = a_(#g, 1, 2)%  h = … = a_(#h − 2, 1, 2)%  h = a_(#h − 1, 1, 2)%  h = y_(p = 1)(y_(p = 1):  fixed-value) a_(#0, 2, 2)%  h = a_(#1, 2, 2)%  h = a_(#2, 2, 2)%  h = a_(#3, 2, 2)%  h = … = a_(#g, 2, 2)%  h = … = a_(#h − 2, 2, 2)%  h = a_(#h − 1, 2, 2)%  h = y_(p = 2)(y_(p = 2):  fixed-value) a_(#0, 3, 2)%  h = a_(#1, 3, 2)%  h = a_(#2, 3, 2)%  h = a_(#3, 3, 2)%  h = … = a_(#g, 3, 2)%  h = … = a_(#h − 2, 3, 2)%  h = a_(#h − 1, 3, 2)%  h = y_(p = 3)(y_(p = 3):  fixed-value) a_(#0, 4, 2)%  h = a_(#1, 4, 2)%  h = a_(#2, 4, 2)%  h = a_(#3, 4, 2)%  h = … = a_(#g, 4, 2)%  h = … = a_(#h − 2, 4, 2)%  h = a_(#h − 1, 4, 2)%  h = y_(p = 4)(y_(p = 4):  fixed-value)      ⋮ a_(#0, k, 2)%  h = a_(#1, k, 2)%  h = a_(#2, k, 2)%  h = a_(#3, k, 2)%  h = … = a_(#g, k, 2)%  h = … = a_(#h − 2, k, 2)%  h = a_(#h − 1, k, 2)%  h = y_(p = k)(y_(p = k):  fixed-value)      (therefore, k = 1, 2, …  , n − 1)      ⋮ a_(#0, n − 2, 2)%  h = a_(#1, n − 2, 2)%  h = a_(#2, n − 2, 2)%  h = a_(#3, n − 2, 2)%  h = … = a_(#g, n − 2, 2)%  h = … = a_(#h − 2, n − 2, 2)%  h = a_(#h − 1, n − 2, 2)%  h = y_(p = n − 2)(y_(p = n − 2):  fixed-value) a_(#0, n − 1, 2)%  h = a_(#1, n − 1, 2)%  h = a_(#2, n − 1, 2)%  h = a_(#3, n − 1, 2)%  h = … = a_(#g, n − 1, 2)%  h = … = a_(#h − 2, n − 1, 2)%  h = a_(#h − 1, n − 1, 2)%  h = y_(p = n − 1)(y_(p = n − 1):  fixed-value)      and b_(#0, 2)%  h = b_(#1, 2)%  h = b_(#2, 2)%  h = b_(#3, 2)%  h = … = b_(#g, 2)%  h = … = b_(#h − 2, 2)%  h = b_(#h − 1, 2)%  h = z(z:  fixed-value)

The shortening methods for realizing a lower coding rate than a coding rate of (n−1)/n with high error correction capability using the aforementioned LDPC-CC having a coding rate of (n−1)/n and a time-varying period of h are as shown below.

[Method #2-1]

Method #2-1 inserts known information (e.g. a zero (or a one, or a predetermined value)) in information X on a regular basis (insertion rule of method #2-1).

[Method #2-2]

Unlike method #2-1, method #2-2 uses h×n×k bits formed with information and parity as one period as shown in FIG. 51 and inserts known information at the same position at each period (insertion rule of method #1-2). Inserting known information at the same positions at each period is as has been described in above Method #1-2 using FIG. 48.

[Method #2-3]

Method #2-3 selects Z bits from h×(n−1)×k bits of information X_(1,hi), X_(2,hi), . . . , X_(n−1,hi), . . . , X_(1,h(i+k−1)+h−1), X_(2,h(i+k−1)+h−1), . . . , X_(n−1,h(i+k−1)+h−1) for a period of h×n×k bits formed with information and parity and inserts known information (e.g. a zero (or a one or a predetermined value)) of the selected Z bits (insertion rule of method #2-3).

At this time, method #2-3 computes remainders after dividing each j by h in information X_(1,j) (where j takes the value of one of hi to h(i+k−1)+h−1) in which known information is inserted.

Then, it is assumed that:

the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (v_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less;

the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less; and

the difference between the number of remainders that become (v_(p=1)+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less. At least one such γ is present.

Similarly, method #2-3 computes remainders after dividing each j by h in information X_(2,j) (where j takes the value of one of hi to h(i+k−1)+h−1) in which known information is inserted.

Then, it is assumed that:

the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (v_(p=2)+γ) mod h (where the number of remainders is non-zero) is one or less;

the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=2)+γ) mod h (where the number of remainders is non-zero) is one or less; and

the difference between the number of remainders that become (v_(p=2)+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=2)+γ) mod h (where the number of remainders is non-zero) is one or less. At least one such γ is present.

Method #2-3 can be described in a similar way also when information X_(f,j) (f=1, 2, 3, . . . , n−1) is assumed. Method #2-3 computes remainders after dividing each j by h in X_(f,j) (where j takes the value of one of hi to h(i+k−1)+h−1) in which known information is inserted. Then, it is assumed that:

the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (v_(p=f)+γ) mod h (where the number of remainders is non-zero) is one or less;

the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=f)+γ) mod h (where the number of remainders is non-zero) is one or less, and

the difference between the number of remainders that become (v_(p=f)+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=f)+γ) mod h (where the number of remainders is non-zero) is one or less. At least one such γ is present.

Thus, by providing a condition at positions at which known information is inserted, it is possible to generate more rows whose unknown values are parity and information bits in parity check matrix H in the same way as in Method #1-3. Thus, it is possible to realize a lower coding rate than a coding rate of (n−1)/n with high error correction capability using the above-described LDPC-CC of a coding rate of (n−1)/n and a time-varying period of h having good characteristics.

A case has been described in Method #2-3 where the number of pieces of known information inserted is the same at each period, but the number of pieces of known information inserted may differ from one period to another. For example, as shown in FIG. 52, provision may also be made for N₀ pieces of information to be designated known information at the first period, for N₁ pieces of information to be designated known information at the next period and for Ni pieces of information to be designated known information at an ith period.

Thus, when the number of pieces of known information inserted differs from one period to another, the concept of period is meaningless. When the insertion rule of method #2-3 is represented without using the concept of period, the insertion rule is represented as shown in Method #2-4.

[Method #2-4]

Z bits are selected from a bit sequence of information X_(1,0), X_(2,0), . . . , X_(n−1,0), . . . , X_(1,v), X_(2,v), . . . , X_(n−1,v) in a data sequence formed with information and parity, and known information (e.g. a zero (or a one or a predetermined value)) is inserted in the selected Z bits (insertion rule of Method #2-4).

At this time, method #2-4 computes remainders after dividing each j by h in X_(1,j) (where j takes the value of one of 0 to v) in which known information is inserted. Then, it is assumed that: the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (v_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less; the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less; and the difference between the number of remainders that become (v_(p=1)+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less. At least one such γ is present.

Similarly, method #2-4 computes remainders after dividing each j by h in X_(2,j) (where j takes the value of one of 0 to v) in which known information is inserted. Then, it is assumed that: the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (v_(p=2)+γ) mod h (where the number of remainders is non-zero) is one or less; the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=2)+γ) mod h (where the number of remainders is non-zero) is one or less; and the difference between the number of remainders that become (v_(p=2)+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=2)+γ) mod h (where the number of remainders is non-zero) is one or less. At least one such γ is present.

That is, method #2-4 computes remainders after dividing each j by h in X_(f,j) (where j takes the value of one of 0 to v) in which known information is inserted. Then, it is assumed that: the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (v_(p=f)+γ) mod h (where the number of remainders is non-zero) is one or less; the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=f)+γ) mod h (where the number of remainders is non-zero) is one or less; and the difference between the number of remainders that become (v_(p=f)+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=f)+γ) mod h (where the number of remainders is non-zero) is one or less (f=1, 2, 3, . . . , n−1). At least one such γ is present.

Thus, by providing a condition for positions at which known information is inserted, it is possible to generate more rows whose unknown values are parity and information bits in parity check matrix H in the same way as in Method #2-3, even when the number of bits of known information inserted differs from one period to another. Thus, it is possible to realize a lower coding rate than a coding rate of (n−1)/n with high error correction capability using the above-described LDPC-CC of a coding rate of (n−1)/n and a time-varying period of h having good characteristics.

Furthermore, to implement Method #2-3 and Method #2-4 more effectively, one of the following three conditions may be satisfied in the aforementioned LDPC-CC based on the parity check polynomial of Condition #18-1 and Condition #18-2 of a time-varying period of h. However, it is assumed that v_(p=s)<y_(p=s) (s=1, 2, . . . , n−1) in Condition #18-1 and Condition #18-2.

y _(p=s) −v _(p=s) =v _(p=s)−0; that is, y_(p=s)=2×v _(p=s),

v _(p=s)−0=h−y _(p=s); that is, v_(p=s) =h−y _(p=s)

h−y _(p=s) =y _(p=s) −v _(p=s); that is, h=2×y _(p=s) −v _(p=s)

When this condition is added, by providing a condition for positions at which known information is inserted, it is possible to increase the number of rows whose all information is known information or rows with many pieces of known information (e.g. all bits except one bit correspond to known information) as much as possible in each row of parity check matrix H, that is, a parity check polynomial. This is because the LDPC-CC has a specific configuration of parity check matrix.

As described above, the communication device inserts information known to the communicating party, performs encoding at a coding rate of ½ on information including known information, and generates parity bits. The communication device then does not transmit known information but transmits information other than known information and the parity bits obtained, and thereby realizes a coding rate of ⅓.

FIG. 53 is a block diagram showing an example of configuration of parts relating to encoding (error correction encoding section 44100 and transmitting device 44200) when a variable coding rate is used in the physical layer.

A known information insertion section 4403 receives information 4401 and control signal 4402 as input, and inserts known information according to information on the coding rate included in control signal 4402. To be more specific, when the coding rate included in control signal 4402 is smaller than the coding rate supported by the encoder 4405 and shortening needs to be performed, known information is inserted according to the aforementioned shortening method and information 4404 after the insertion of known information is output. Conversely, when the coding rate included in control signal 4402 is equal to the coding rate supported by the encoder 4405 and shortening need not be performed, the known information is not inserted and information 4401 is output as information 4404 as is.

The encoder 4405 receives information 4404 and control signal 4402 as input, performs encoding on information 4404, generates parity 4406, and outputs parity 4406. A known information deleting section 4407 receives information 4404 and control signal 4402 as input, deletes, when known information is inserted to the known information insertion section 4403, the known information from information 4404 based on the information on the coding rate included in control signal 4402 and outputs information 4408 after the deletion. Conversely, when known information is not inserted, the known information insertion section 4403 outputs information 4404 as information 4408 as is.

A modulation section 4409 receives parity 4406, information 4408, and control signal 4402 as input, modulates parity 4406 and information 4408 based on information of the modulation scheme included in control signal 4402, and generates and outputs baseband signal 4410.

FIG. 54 is a block diagram showing another example of configuration of parts relating to encoding (error correction encoding section 44100 and transmitting device 44200) when a variable coding rate is used in the physical layer, different from that in FIG. 53. As shown in FIG. 54, by adopting such a configuration that information 4401 input to the known information insertion section 4403 is input to the modulation section 4409, a variable coding rate can be used as in the case of FIG. 53 even when known information deleting section 4407 in FIG. 53 is omitted.

FIG. 55 is a block diagram showing an example of the configuration of an error correction decoding section 46100 in the physical layer. A log-likelihood ratio insertion section 4603 for known information receives log-likelihood ratio signal 4601 of received data and control signal 4602 as input. Based on information of the coding rate included in control signal 4602, if a log-likelihood ratio of the known information needs to be inserted, the log-likelihood ratio insertion section 4603 inserts the log-likelihood ratio of the known information having high belief to the log-likelihood ratio signal 4601. The log-likelihood ratio insertion section 4603 outputs the log-likelihood ratio signal 4604 after inserting the log-likelihood ratio of the known information. Information of the coding rate included in control signal 4602 is transmitted, for example, from the communicating party.

A decoding section 4605 receives control signal 4602 and log-likelihood ratio signal 4604 after inserting the log-likelihood ratio of the known information as input, performs decoding based on information of the encoding method such as a coding rate included in control signal 4602, decodes the received data, and outputs decoded data 4606.

A known information deleting section 4607 receives control signal 4602 and decoded data 4606 as input, deletes, when known information is inserted, the known information based on the information of the encoding method such as the coding rate included in control signal 4602, and outputs information 4608 after the deletion of the known information.

The shortening method has been described so far which realizes a lower coding rate than the coding rate of the code from an LDPC-CC having a time-varying period of h described in Embodiment 1. When the LDPC-CC having a time-varying period of h is used in a packet layer described in Embodiment 1, using the shortening method according to the present embodiment makes it possible to improve transmission efficiency and erasure correction capability simultaneously. Even when the coding rate is changed in the physical layer, good error correction capability can be achieved.

In the case of a convolutional code such as LDPC-CC, a termination sequence may be added at the termination of a transmission information sequence to perform termination processing (termination). At this time, the encoding section 4405 receives known information (e.g. all zeroes) as input and the termination sequence is formed with only a parity sequence obtained by encoding the known information. Thus, the termination sequence may include parts that do not follow the known information insertion rule described in the invention of the present application. Furthermore, there may be a part following the insertion rule and a part in which known information is not inserted also in parts other than the termination to improve the transmission rate. The termination processing (termination) will be described in Embodiment 11.

Embodiment 10

The present embodiment will describe an erasure correction method that realizes a lower coding rate than a coding rate of (n−1)/n with high error correction capability using the LDPC-CC of a coding rate of (n−1)/n and a time-varying period of h (h is an integer equal to or greater than four) described in Embodiment 1. However, the description of the LDPC-CC of a coding rate of (n−1)/n and a time-varying period of h (h is an integer equal to or greater than four) is assumed to be the same as that in Embodiment 9.

[Method #3-1]

As shown in FIG. 56, method #3-1 assumes h×n×k bits (k is a natural number) formed with information and parity as a period and inserts known information included in a known information packet at the same position at each period (insertion rule of method #3-1). Insertion of known information included in a known information packet at the same position at each period has been described in method #2-2 of Embodiment 9 or the like.

[Method #3-2]

Method #3-2 selects Z bits from h×(n−1)×k bits of information X_(1,hi), X_(2,hi), . . . , X_(n−1,hi), . . . , X_(1,h(i+k−1)+h−1), X_(2,h(i+k−1)+h−1), . . . , X_(n−1,h(i+k−1)+h−1) at a period of h×n×k bits formed with information and parity, and inserts data of a known information packet (e.g. a zero (or a one or a predetermined value)) in the selected Z bits (insertion rule of method #3-2).

At this time, method #3-2 computes remainders after dividing each j by h in X_(1,j) (where j takes the value of one of hi to h(i+k−1)+h−1) in which the data of the known information packet is inserted. Then, it is assumed that: the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (v_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less; the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less; and the difference between the number of remainders that become (v_(p=1)+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less. At least one such γ is present.

That is, method #3-2 computes remainders after dividing each j by h in X_(f,j) (where j takes the value of one of hi to h(i+k−1)+h−1) in which the data of the known information packet is inserted. Then, it is assumed that: the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (v_(p=f)+γ) mod h (where the number of remainders is non-zero) is one or less; the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=f)+γ) mod h (where the number of remainders is non-zero) is one or less; and the difference between the number of remainders that become (v_(p=f)+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=f)+γ) mod h (where the number of remainders is non-zero) is one or less (f=1, 2, 3, . . . , n−1). At least one such γ is present.

Thus, by providing a condition at positions at which known information is inserted, it is possible to generate more rows whose unknown values are parity and fewer information bits in parity check matrix H. Thus, it is possible to realize a system capable of changing a coding rate of its erasure correction code with high erasure correction capability and a low circuit scale using the above-described LDPC-CC of a coding rate of (n−1)/n and a time-varying period of h.

An erasure correction method using a variable coding rate of a erasure correction code has been described so far as the erasure correction method in a upper layer.

With regard to the configuration of the erasure correction coding-related processing section and erasure correction decoding-related processing section using a variable coding rate of an erasure correction code in a upper layer, the coding rate of the erasure correction code can be changed by inserting a known information packet before erasure correction coding-related processing section 2112 in FIG. 21.

Thus, the coding rate is made variable according to, for example, a communication situation, and it is thereby possible to increase the coding rate when the communication situation is good and improve transmission efficiency. Furthermore, when the coding rate is decreased, it is possible to improve erasure correction capability by inserting known information included in a known information packet according to the check matrix as in the case of Method #3-2.

A case has been described with Method #3-2 where the number of pieces of data of a known information packet inserted is the same among different periods, but the number of pieces of data inserted may differ from one period to another. For example, as shown in FIG. 57, it may be assumed that N₀ pieces of information are designated data of the known information packet at the first period, N₁ pieces of information are designated data of the known information packet at the next period, and N_(i) pieces of information are designated data of the known information packet at an ith period.

When the number of pieces of data of the known information packet inserted differs from one period to another in this way, the concept of period is meaningless. When the insertion rule of method #3-2 is represented without using the concept of period, the insertion rule is as shown in Method #3-3.

[Method #3-3]

Z bits are selected from a bit sequence of information X_(1,0), X_(2,0), . . . X_(n−1,0), . . . , X_(1,v), X_(2,v), . . . , X_(n−1,v) in a data sequence formed with information and parity, and known information (e.g. a zero (or a one, or a predetermined value)) is inserted in the selected Z bits (insertion rule of method #3-3).

At this time, method #3-3 computes remainders after dividing each j by h in X_(1,j) (where j takes the value of one of 0 to v) in which known information is inserted. Then, it is assumed that: the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (v_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less; the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less; and the difference between the number of remainders that become (v_(p=1)+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=1)+γ) mod h (where the number of remainders is non-zero) is one or less. At least one such γ is present.

That is, method #3-3 computes remainders after dividing each j by h in X_(f,j) (where j takes the value of one of 0 to v) in which known information is inserted. Then, it is assumed that: the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (v_(p=f)+γ) mod h (where the number of remainders is non-zero) is one or less; the difference between the number of remainders that become (0+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=f)+γ) mod h (where the number of remainders is non-zero) is one or less; and the difference between the number of remainders that become (v_(p=f)+γ) mod h (where the number of remainders is non-zero) and the number of remainders that become (y_(p=f)+γ) mod h (where the number of remainders is non-zero) is one or less (f=1, 2, 3, . . . , n−1). At least one such γ is present.

A system using a variable coding rate of an erasure correction code has been described so far which uses a method of realizing a lower coding rate than the coding rate of a code from an LDPC-CC of a time-varying period of h described in Embodiment 1. Using the variable coding rate method of the present embodiment, it is possible to improve transmission efficiency and erasure correction capability simultaneously and achieve good erasure correction capability when the coding rate is changed during erasure correction.

Embodiment 11

When an LDPC-CC relating to the present invention is used, termination or tail-biting is necessary to secure belief in decoding of information bits. Thus, the present embodiment will describe a method in detail when termination (referred to as information-zero-termination or simply referred to as zero-termination) is performed.

FIG. 58 is a diagram illustrating information-zero-termination of an LDPC-CC of a coding rate of (n−1)/n. Information bits X₁, X₂, . . . , X_(n−1) and parity bit P at point in time i (i=0, 1, 2, 3, . . . , s) are assumed to be X_(1,i), X_(2,i), . . . , X_(n−1,i) and parity bit P_(i), respectively. As shown in FIG. 58, X_(n−1,s) is assumed to be a final bit (4901) of information to transmit. However, to maintain receiving quality in the decoder, it is also necessary to encode information from point in time s onward during encoding.

For this reason, when the encoder performs encoding only until point in time s and the transmitting device on the encoding side performs transmission to the receiving device on the decoding side only until P_(s), receiving quality of information bits in the decoder deteriorates considerably. To solve this problem, encoding is performed assuming information bits (hereinafter, virtual information bits) from final information bit X_(n−1,s) onward to be zeroes and parity bit (4903) is generated.

To be more specific, as shown in FIG. 58, the encoder performs encoding assuming X_(1,k), X_(2,k), . . . , X_(n−1,k) (k=t1, t2, . . . , tm) to be zero and obtains P_(t1), P_(t2), . . . , P_(tm). The transmitting apparatus on the encoding side transmits X_(1,s), X_(2,s), . . . , X_(n−1,s), P_(s) at point in time s and then transmits P_(t1), P_(t2), . . . , P_(tm). From point in time s onward, the decoder performs decoding taking advantage of knowing that virtual information bits are zeroes. A case has been described above where the virtual information bits are zeroes as an example, but the present invention is not limited to this and can be likewise implemented as long as the virtual information bits are data known to the transmitting/receiving apparatuses.

It goes without saying that all embodiments of the present invention can also be implemented even when termination is performed.

Embodiment 12

The present embodiment describes an example of a specific method of generating an LDPC-CC based on the parity check polynomials described in Embodiment 1 and Embodiment 6.

Embodiment 6 has described that the following conditions are effective as the time-varying period of an LDPC-CC described in Embodiment 1:

-   -   The time-varying period is a prime number.     -   The time-varying period is an odd number and the number of         divisors is small with respect to the value of a time-varying         period.

Here, a case will be considered where the time-varying period is increased and a code is generated. At this time, a code is generated using a random number with which the constraint condition is given, but when the time-varying period is increased, the number of parameters to be set using a random number increases, resulting in a problem that it is difficult to search a code having high error correction capability. To solve this problem, the present embodiment will describe a method of generating a different code using an LDPC-CC based on the parity check polynomials described in Embodiment 1 and Embodiment 6.

An LDPC-CC design method based on a parity check polynomial having a coding rate of ½ and a time-varying period of 15 is described as an example.

Consider Math. 86-0 through 86-14 as parity check polynomials (that satisfy zero) of an LDPC-CC having a coding rate of (n−1)/n (n is an integer equal to or greater than two) and a time-varying period of 15.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 86} \right\rbrack} & \; \\ {{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + D^{{a{\# 0}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + D^{{a{\# 0}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 0}},{n - 1},1} + D^{{a{\# 0}},{n - 1},2} + D^{{a{\# 0}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 0}},1} + D^{{b{\# 0}},2} + D^{{b{\# 0}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 86}\text{-}0} \right) \\ {{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + D^{{a{\# 1}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + D^{{a{\# 1}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 1}},{n - 1},1} + D^{{a{\# 1}},{n - 1},2} + D^{{a{\# 1}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 1}},1} + D^{{b{\# 1}},2} + D^{{b{\# 1}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 86}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + D^{{a{\# 2}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + D^{{a{\# 2}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 2}},{n - 1},1} + D^{{a{\# 2}},{n - 1},2} + D^{{a{\# 2}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 2}},1} + D^{{b{\# 2}},2} + D^{{b{\# 2}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 86}\text{-}2} \right) \\ {{{\left( {D^{{a{\# 3}},1,1} + D^{{a{\# 3}},1,2} + D^{{a{\# 3}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 3}},2,1} + D^{{a{\# 3}},2,2} + D^{{a{\# 3}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 3}},{n - 1},1} + D^{{a{\# 3}},{n - 1},2} + D^{{a{\# 3}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 3}},1} + D^{{b{\# 3}},2} + D^{{b{\# 3}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 86}\text{-}3} \right) \\ {{{\left( {D^{{a{\# 4}},1,1} + D^{{a{\# 4}},1,2} + D^{{a{\# 4}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 4}},2,1} + D^{{a{\# 4}},2,2} + D^{{a{\# 4}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 4}},{n - 1},1} + D^{{a{\# 4}},{n - 1},2} + D^{{a{\# 4}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 4}},1} + D^{{b{\# 4}},2} + D^{{b{\# 4}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 86}\text{-}4} \right) \\ {{{\left( {D^{{a{\# 5}},1,1} + D^{{a{\# 5}},1,2} + D^{{a{\# 5}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 5}},2,1} + D^{{a{\# 5}},2,2} + D^{{a{\# 5}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 5}},{n - 1},1} + D^{{a{\# 5}},{n - 1},2} + D^{{a{\# 5}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 5}},1} + D^{{b{\# 5}},2} + D^{{b{\# 5}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 86}\text{-}5} \right) \\ {{{\left( {D^{{a{\# 6}},1,1} + D^{{a{\# 6}},1,2} + D^{{a{\# 6}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 6}},2,1} + D^{{a{\# 6}},2,2} + D^{{a{\# 6}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 6}},{n - 1},1} + D^{{a{\# 6}},{n - 1},2} + D^{{a{\# 6}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 6}},1} + D^{{b{\# 6}},2} + D^{{b{\# 6}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 86}\text{-}6} \right) \\ {{{\left( {D^{{a{\# 7}},1,1} + D^{{a{\# 7}},1,2} + D^{{a{\# 7}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 7}},2,1} + D^{{a{\# 7}},2,2} + D^{{a{\# 7}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 7}},{n - 1},1} + D^{{a{\# 7}},{n - 1},2} + D^{{a{\# 7}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 7}},1} + D^{{b{\# 7}},2} + D^{{b{\# 7}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 86}\text{-}7} \right) \\ {{{\left( {D^{{a{\# 8}},1,1} + D^{{a{\# 8}},1,2} + D^{{a{\# 8}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 8}},2,1} + D^{{a{\# 8}},2,2} + D^{{a{\# 8}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 8}},{n - 1},1} + D^{{a{\# 8}},{n - 1},2} + D^{{a{\# 8}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 8}},1} + D^{{b{\# 8}},2} + D^{{b{\# 8}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 86}\text{-}8} \right) \\ {{{\left( {D^{{a{\# 9}},1,1} + D^{{a{\# 9}},1,2} + D^{{a{\# 9}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 9}},2,1} + D^{{a{\# 9}},2,2} + D^{{a{\# 9}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 9}},{n - 1},1} + D^{{a{\# 9}},{n - 1},2} + D^{{a{\# 9}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 9}},1} + D^{{b{\# 9}},2} + D^{{b{\# 9}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 86}\text{-}9} \right) \\ {{{\left( {D^{{a{\# 10}},1,1} + D^{{a{\# 10}},1,2} + D^{{a{\# 10}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 10}},2,1} + D^{{a{\# 10}},2,2} + D^{{a{\# 10}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 10}},{n - 1},1} + D^{{a{\# 10}},{n - 1},2} + D^{{a{\# 10}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 10}},1} + D^{{b{\# 10}},2} + D^{{b{\# 10}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 86}\text{-}10} \right) \\ {{{\left( {D^{{a{\# 11}},1,1} + D^{{a{\# 11}},1,2} + D^{{a{\# 11}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 11}},2,1} + D^{{a{\# 11}},2,2} + D^{{a{\# 11}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 11}},{n - 1},1} + D^{{a{\# 11}},{n - 1},2} + D^{{a{\# 11}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 11}},1} + D^{{b{\# 11}},2} + D^{{b{\# 11}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 86}\text{-}11} \right) \\ {{{\left( {D^{{a{\# 12}},1,1} + D^{{a{\# 12}},1,2} + D^{{a{\# 12}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 12}},2,1} + D^{{a{\# 12}},2,2} + D^{{a{\# 12}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 12}},{n - 1},1} + D^{{a{\# 12}},{n - 1},2} + D^{{a{\# 12}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 12}},1} + D^{{b{\# 12}},2} + D^{{b{\# 12}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 86}\text{-}12} \right) \\ {{{\left( {D^{{a{\# 13}},1,1} + D^{{a{\# 13}},1,2} + D^{{a{\# 13}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 13}},2,1} + D^{{a{\# 13}},2,2} + D^{{a{\# 13}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 13}},{n - 1},1} + D^{{a{\# 13}},{n - 1},2} + D^{{a{\# 13}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 13}},1} + D^{{b{\# 13}},2} + D^{{b{\# 13}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 86}\text{-}13} \right) \\ {{{\left( {D^{{a{\# 14}},1,1} + D^{{a{\# 14}},1,2} + D^{{a{\# 14}},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 14}},2,1} + D^{{a{\# 14}},2,2} + D^{{a{\# 14}},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 14}},{n - 1},1} + D^{{a{\# 14}},{n - 1},2} + D^{{a{\# 14}},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b{\# 14}},1} + D^{{b{\# 14}},2} + D^{{b{\# 14}},3}} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 86}\text{-}14} \right) \end{matrix}$

At this time, X₁(D), X₂(D), . . . , X_(n−1)(D) are polynomial representations of data (information) X₁, X₂, . . . , X_(n−1), and P(D) is a polynomial representation of parity. In Math. 86-0 through 86-14, when, for example, the coding rate is ½, there are only terms of X₁(D) and P(D) and there are no terms of X₂(D), . . . , X_(n−1)(D). Similarly, when the coding rate is ⅔, there are only terms of X₁(D), X₂(D), and P(D) and there are no terms of X₃(D), . . . , X_(n−1)(D). Other coding rates may also be considered likewise. Here, Math. 86-0 through 86-14 are assumed to be such parity check polynomials that there are three terms in each of X₁(D), X₂(D), . . . , X_(n−1)(D), and P(D).

Furthermore, it is assumed that the following holds true for X₁(D), X₂(D), . . . , X_(n−1)(D), and P(D) in Math. 86-0 through 86-14.

In Math. 86-q, it is assumed that a_(#q,p,1), a_(#q,p,2), and a_(#q,p,3) are natural numbers and a_(#q,p,1)≠a_(#q,p,2), a_(#q,p,1)≠a_(#q,p,3) and a_(#q,p,2)≠a_(#q,p,3) hold true. Furthermore, it is assumed that b_(#q,1), b_(#q,2) and b_(#q,3) are natural numbers and b_(#q,1) b_(#q,2), b_(#q,1)≠b_(#q,3), and b_(#q,1)≠b_(#q,3) hold true (q=0, 1, 2, . . . , 13, 14; p=1, 2, . . . , n−1).

The parity check polynomial of Math. 86-q is called check equation #q and the sub-matrix based on the parity check polynomial of Math. 86-q is called a qth sub-matrix H_(q). An LDPC-CC having a time-varying period of 15 generated from 0th sub-matrix H₀, first sub-matrix H₁, second sub-matrix H₂, . . . , thirteenth sub-matrix H₁₃, and fourteenth sub-matrix H₁₄ will be considered. Thus, the code configuring method, parity check matrix generating method, encoding method, and decoding method will be similar to those of the methods described in Embodiment 1 and Embodiment 6.

As described above, a case with a coding rate of ½ will be described, and therefore there are only terms of X₁(D) and P(D) hereinafter.

In Embodiment 1 and Embodiment 6, assuming that the time-varying period is 15, both the time-varying period of the coefficient of X₁(D) and the time-varying period of the coefficient of P(D) are 15. By contrast, the present embodiment proposes a code configuring method of an LDPC-CC with a time-varying period of 15 by setting the time-varying period of the coefficients of X₁(D) to three and the time-varying period of the coefficients of P(D) to five, as an example. That is, the present embodiment configures a code where the time-varying period of the LDPC-CC is LCM(α, β) by setting the time-varying period of the coefficients of X₁(D) to α and the time-varying period of the coefficients of P(D) to β (α≠β), where LCM(X, Y) is assumed to be a least common multiple of X and Y.

To achieve high error correction capability, the following conditions are provided for the coefficient of X₁(D) as in the cases of Embodiment 1 and Embodiment 6. In the following conditions, % means a modulo, and, for example, α%15 represents a remainder after dividing α by 15.

<Condition #19-1>

a_(#0, 1, 1)%  15 = a_(#1, 1, 1)%  15 = a_(#2, 1, 1)%  15 = … = a_(#k, 1, 1)%  15 = … = a_(#14, 1, 1)%  15 = v_(p = 1)(v_(p = 1):  fixed-value)      (therefore  k = 0, 1, 2, …  , 14) a_(#0, 1, 2)%  15 = a_(#1, 1, 2)%  15 = a_(#2, 1, 2)%  15 = … = a_(#k, 1, 2)%  15 = … = a_(#14, 1, 2)%  15 = y_(p = 1)(y_(p = 1):  fixed-value)      (therefore  k = 0, 1, 2, …  , 14) a_(#0, 1, 3)%  15 = a_(#1, 1, 3)%  15 = a_(#2, 1, 3)%  15 = … = a_(#k, 1, 3)%  15 = … = a_(#14, 1, 3)%  15 = z_(p = 1)(z_(p = 1):  fixed-value)      (therefore  k = 0, 1, 2, …  , 14)

Furthermore, since the time-varying period of the coefficient of X₁(D) is three, the following condition holds true.

<Condition #19-2>

When i%3=j%3 (i, j=0, 1, . . . , 13, 14; i≠j) holds true, the following holds true.

[Math. 87]

a _(#i,1,1) =a _(#j,1,1)  (Math. 87-1)

a _(#i,1,2) =a _(#j,1,2)  (Math. 87-2)

a _(#i,1,3) =a _(#j,1,3)  (Math. 87-3)

Similarly, the following conditions are provided for the coefficient of P(D).

<Condition #20-1>

b_(#0, 1)%  15 = b_(#1, 1)%  15 = b_(#2, 1)%  15 = … = b_(#k, 1)%  15 = … = b_(#14, 1)%  15 = d(d:  fixed-value)      (therefore  k = 0, 1, 2, …  , 14) b_(#0, 2)%  15 = b_(#1, 2)%  15 = b_(#2, 2)%  15 = … = b_(#k, 2)%  15 = … = b_(#14, 2)%  15 = e(e:  fixed-value)      (therefore  k = 0, 1, 2, …  , 14) b_(#0, 3)%  15 = b_(#1, 3)%  15 = b_(#2, 3)%  15 = … = b_(#k, 3)%  15 = … = b_(#14, 3)%  15 = f(f:  fixed-value)      (therefore  k = 0, 1, 2, …  , 14)

Furthermore, since the time-varying period of the coefficient of P(D) is 5, the following conditions hold true.

<Condition #20-2>

When i%5=j%5 (i, j=0, 1, . . . , 13, 14; i≠j) holds true, the following three relations hold true.

[Math. 88]

b _(#i,1) =b _(#j,1)  (Math. 88-1)

b _(#i,2) =b _(#j,2)  (Math. 88-2)

b _(#i,3) =b _(#j,3)  (Math. 88-3)

Providing the above-described conditions makes it possible to reduce the number of parameters set using random numbers while increasing the time-varying period and achieve the effect of facilitating a code search. Condition #19-1 and Condition #20-1 are not always necessary conditions. That is, only Condition #19-2 and Condition #20-2 may be provided as conditions. Furthermore, conditions of Condition #19-1′ and Condition #20-1′ may also be provided instead of Condition #19-1 and Condition #20-1.

<Condition #19-1′>

a_(#0, 1, 1)%  3 = a_(#1, 1, 1)%  3 = a_(#2, 1, 1)%  3 = … = a_(#k, 1, 1)%  3 = … = a_(#14, 1, 1)%  3 = v_(p = 1)(v_(p = 1):  fixed-value)      (therefore  k = 0, 1, 2, …  , 14) a_(#0, 1, 2)%  3 = a_(#1, 1, 2)%  3 = a_(#2, 1, 2)%  3 = … = a_(#k, 1, 2)%  3 = … = a_(#14, 1, 2)%  3 = y_(p = 1)(y_(p = 1):  fixed-value)      (therefore  k = 0, 1, 2, …  , 14) a_(#0, 1, 3)%  3 = a_(#1, 1, 3)%  3 = a_(#2, 1, 3)%  3 = … = a_(#k, 1, 3)%  3 = … = a_(#14, 1, 3)%  3 = z_(p = 1)(z_(p = 1):  fixed-value)      (therefore  k = 0, 1, 2, …  , 14)

<Condition #20-1′>

b_(#0, 1)%  5 = b_(#1, 1)%  5 = b_(#2, 1)%  5 = … = b_(#k, 1)%  5 = … = b_(#14, 1)%  5 = d(d:  fixed-value)(therefore  k = 0, 1, 2, …  , 14) b_(#0, 2)%  5 = b_(#1, 2)%  5 = b_(#2, 2)%  5 = … = b_(#k, 2)%  5 = … = b_(#14, 2)%  5 = e(e:  fixed-value)(therefore  k = 0, 1, 2, …  , 14) b_(#0, 3)%  5 = b_(#1, 3)%  5 = b_(#2, 3)%  5 = … = b_(#k, 3)%  5 = … = b_(#14, 3)%  5 = f(f:  fixed-value)(therefore  k = 0, 1, 2, …  , 14)

Using the above example as a reference and assuming that the time-varying period of the coefficient of X₁(D) is α and the time-varying period of the coefficient of P(D) is β, the code configuration method of an LDPC-CC of a time-varying period of LCM(α, β) will be described, where time-varying period LCM(α, β)=s.

An ith (i=0, 1, 2, . . . , s−2, s−1) parity check polynomial that satisfies zero of an LDPC-CC based on a parity check polynomial of a time-varying period of s and a coding rate of ½ is represented as shown below.

[Math. 89]

(D ^(a#i,1,1) +D ^(a#i,1,2) +D ^(a#i,1,3))X ₁(D)+(D ^(b#i,1) +D ^(b#i,2) +D ^(b#i,3) P(D)=0  (Math. 89-1)

Using the above description as a reference, the following condition becomes important in the code configuration method of the present embodiment.

The following condition is provided for the coefficient of X₁(D).

<Condition #21-1>

a_(#0, 1, 1)%  s = a_(#1, 1, 1)%  s = a_(#2, 1, 1)%  s = … = a_(#k, 1, 1)%  s = … = a_(#s − 1, 1, 1)%  s = v_(p = 1)(v_(p = 1):  fixed-value)      (therefore  k = 0, 1, 2, …  , s − 1) a_(#0, 1, 2)%  s = a_(#1, 1, 2)%  s = a_(#2, 1, 2)%  s = … = a_(#k, 1, 2)%  s = … = a_(#s − 1, 1, 2)%  s = y_(p = 1)(y_(p = 1):  fixed-value)      (therefore  k = 0, 1, 2, …  , s − 1) a_(#0, 1, 3)%  s = a_(#1, 1, 3)%  s = a_(#2, 1, 3)%  s = … = a_(#k, 1, 3)%  s = … = a_(#s − 1, 1, 3)%  s = z_(p = 1)(z_(p = 1):  fixed-value)      (therefore  k = 0, 1, 2, …  , s − 1)

Furthermore, since the time-varying period of the coefficient of X₁(D) is α, the following condition holds true.

<Condition #21-2>

When i%α=j%α (i, j=0, 1, . . . , s−2, s−1; i≠j) holds true, the following three relations hold true.

[Math. 90]

a _(#i,1,1) =a _(#j,1,1)  (Math. 90-1)

a _(#i,1,2) =a _(#j,1,2)  (Math. 90-2)

a _(#i,1,3) =a _(#j,1,3)  (Math. 90-3)

Similarly, the following condition is provided for the coefficient of P(D).

<Condition #22-1>

b_(#0, 1)%  s = b_(#1, 1)%  s = b_(#2, 1)%  s = … = b_(#k, 1)%  s = … = b_(#s − 1, 1)%  s = d(d:  fixed-value)      (therefore  k = 0, 1, 2, …  , s − 1) b_(#0, 2)%  s = b_(#1, 2)%  s = b_(#2, 2)%  s = … = b_(#k, 2)%  s = … = b_(#s − 1, 2)%  s = e(e:  fixed-value)      (therefore  k = 0, 1, 2, …  , s − 1) b_(#0, 3)%  s = b_(#1, 3)%  s = b_(#2, 3)%  s = … = b_(#k, 3)%  s = … = b_(#s − 1, 3)%  s = f(f:  fixed-value)      (therefore  k = 0, 1, 2, …  , s − 1)

Furthermore, since the time-varying period of the coefficient of P(D) is β, the following condition holds true.

<Condition #22-2>

When i%β=j%β (i, j=0, 1, . . . , s−2, s−1; i≠j) holds true, the following three relations hold true.

[Math. 91]

b _(#i,1) =b _(#j,1)  (Math. 91-1)

b _(#i,2) =b _(#j,2)  (Math. 91-2)

b _(#i,3) =b _(#j,3)  (Math. 91-3)

By providing the following conditions, it is possible to reduce the number of parameters set using random numbers while increasing the time-varying period and provide an effect of facilitating a code search. Condition #21-1 and Condition #22-1 are not always necessary conditions. That is, only Condition #21-2 and Condition #22-2 may be provided as conditions. Furthermore, instead of Condition #21-1 and Condition #22-1, Condition #21-1′ and Condition #22-1′ may also be provided.

<Condition #21-1′>

a_(#0, 1, 1)%  α = a_(#1, 1, 1)%  α = a_(#2, 1, 1)%  α = … = a_(#k, 1, 1)%  α = … = a_(#s − 1, 1, 1)%  α = v_(p = 1)(v_(p = 1):  fixed-value)      (therefore  k = 0, 1, 2, …  , s − 1) a_(#0, 1, 2)%  α = a_(#1, 1, 2)%  α = a_(#2, 1, 2)%  α = … = a_(#k, 1, 2)%  α = … = a_(#s − 1, 1, 2)%  α = y_(p = 1)(y_(p = 1):  fixed-value)      (therefore  k = 0, 1, 2, …  , s − 1) a_(#0, 1, 3)%  α = a_(#1, 1, 3)%  α = a_(#2, 1, 3)%  α = … = a_(#k, 1, 3)%  α = … = a_(#s − 1, 1, 3)%  α = z_(p = 1)(z_(p = 1):  fixed-value)      (therefore  k = 0, 1, 2, …  , s − 1)

<Condition #22-1′>

b_(#0, 1)%β = b_(#1, 1)%β = b_(#2, 1)%β = … = b_(#k, 1)%β = … = b_(#s − 1, 1)%β = d(d:  fixed-value)(therefore  k = 0, 1, 2, …  , s − 1) b_(#0, 2)%β = b_(#1, 2)%β = b_(#2, 2)%β = … = b_(#k, 2)%β = … = b_(#s − 1, 2)%β = e(e:  fixed-value)  (therefore  k = 0, 1, 2, …  , s − 1) b_(#0, 3)%β = b_(#1, 3)%β = b_(#2, 3)%β = … = b_(#k, 3)%β = … = b_(#s − 1, 3)%β = f(f:  fixed-value)  (therefore  k = 0, 1, 2, …  , s − 1)

The ith (i=0, 1, 2, . . . , s−2, s−1) parity check polynomial that satisfies zero of an LDPC-CC based on a parity check polynomial having a time-varying period of and a coding rate of ½ has been represented as shown in Math. 89-i, but when actually used, the parity check polynomial that satisfies zero is represented by the following.

[Math. 92]

(D ^(a#i,1,1) +D ^(a#i,1,2)+1)X ₁(D)+(D ^(b#i,1) +D ^(b#i,2)+1)P(D)=0  (Math. 92-1)

Furthermore, consider generalizing the parity check polynomial. The ith (i=0, 1, 2, . . . , s−2, s−1) parity check polynomial that satisfies zero is represented as shown in below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 93} \right\rbrack} & \; \\ {{{{A_{{X\; 1},i}(D)}{X_{1}(D)}} + {{B_{i}(D)}{P(D)}}} = {{{\left( {D^{a_{1,i,1}} + D^{a_{1,i,2}} + \ldots + D^{a_{1,i,{ri}}}} \right){X_{1}(D)}} + {\left( {D^{b_{i,1}} + D^{b_{i,2}} + \ldots + D^{b_{i,{\omega \; i}}}} \right){P(D)}}} = {{{{X_{1}(D)}{\sum\limits_{k = 1}^{r_{i}}D^{a_{1,i,k}}}} + {{P(D)}{\sum\limits_{k = 1}^{\omega_{i}}D^{b_{i,k}}}}} = 0}}} & \left( {{{Math}.\mspace{14mu} 93}\text{-}1} \right) \end{matrix}$

That is, a case will be considered where the number of terms of X₁(D) and P(D) as the parity check polynomial is not limited to three as shown in Math. 93-i. Using the above description as a reference, the following condition becomes important in the code configuration method of the present embodiment.

<Condition #23>

When i%α=j%α(i, j=0, 1, . . . , s−2, s−1; i≠j) holds true, the following holds true.

[Math. 94]

A _(X1,i)(D)=A _(X1,j)(D)  (Math. 94)

<Condition #24>

When i%β=j%β (i, j=0, 1, . . . , s−2, s−1; i≠j) holds true, the following holds true:

[Math. 95]

B _(i)(D)=B _(j)(D)  (Math. 95)

Providing the above-described conditions makes it possible to reduce the number of parameters set using random numbers while increasing the time-varying period and achieve the effect of facilitating a code search. At this time, to efficiently increase the time-varying period, α and β may be coprime. The description α and β are coprime means that α and β have a relationship of having no common divisor other than one (and −1).

At this time, the time-varying period can be represented by α×β. However, even when there is no such relationship that α and β are coprime, high error correction capability may be likely to be achieved. Furthermore, based on the description of Embodiment 6, α and β may be odd numbers. However, even when α and β are not odd numbers, high error correction capability may be likely to be achieved.

Next, with regard to an LDPC-CC based on a parity check polynomial having a time-varying period of s and a coding rate of (n−1)/n, a code configuration method of an LDPC-CC will be described in which the time-varying period of the coefficient of X₁(D) is α₁, the time-varying period of the coefficient of X₂(D) is α₂, . . . , the time-varying period of the coefficient of X_(k)(D) is α_(k) (k=1, 2, . . . , n−2, n−1), . . . , the time-varying period of the coefficient of X_(n−1)(D) is a_(n−1), and the time-varying period of the coefficient of P(D) is P. At this time, time-varying period s=LCM(α₁, α₂, . . . , α_(n−2), a_(n−1), β). That is, time-varying period s is a least common multiple of α₁, α₂, . . . , α_(n−2), α_(n−1), β.

The ith (i=0, 1, 2, . . . , s−2, s−1) parity check polynomial that satisfies zero of an LDPC-CC based on a parity check polynomial having a time-varying period of s and a coding rate of (n−1)/n is a parity check polynomial that satisfies zero represented as shown below.

$\begin{matrix} {\; \left\lbrack {{Math}.\mspace{14mu} 96} \right\rbrack} & \; \\ {{{{A_{{X\; 1},i}(D)}{X_{1}(D)}} + {{A_{{X\; 2},i}(D)}{X_{2}(D)}} + \ldots + {{A_{{{X\; n} - 2},i}(D)}{X_{n - 2}(D)}} + {{A_{{{X\; n} - \; 1},i}(D)}{X_{n - 1}(D)}} + {{B_{i}(D)}{P(D)}}} = {{\left( {D^{a_{1,i,1}} + D^{a_{1,i,2}} + \ldots + D^{a_{1,i,{r\; 1},i}}} \right){X_{1}(D)}} + {\left( {D^{a_{2,i,1}} + D^{a_{2,i,2}} + \ldots + D^{a_{2,i,{r\; 2},i}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{a_{{n - 2},i,1}} + D^{a_{{n - 2},i,2}} + \ldots + D^{a_{{n - 2},i,{{r\; n} - 2},i}}} \right){X_{n - 2}(D)}} + {\left( {D^{a_{{n - 1},i,1}} + D^{a_{{n - 1},i,2}} + \ldots + D^{a_{{n - 1},i,{{r\; n} - 1},i}}} \right)X_{n - 1}(D)} +}} & \left( {{Math}.\mspace{14mu} 96} \right) \\ {\mspace{191mu} {{\left( {D^{b_{i,1}} + D^{b_{i,2}} + \ldots + D^{b_{i,{\omega \; i}}}} \right){P(D)}} = {{{{X_{1}(D)}{\sum\limits_{k = 1}^{r_{1,i}}D^{a_{1,i,k}}}} + {{X_{2}(D)}{\sum\limits_{k = 1}^{r_{2,i}}D^{a_{2,i,k}}}} + \ldots + {{X_{n - 2}(D)}{\sum\limits_{k = 1}^{r_{{n - 2},i}}D^{a_{{n - 2},i,k}}}} + {{X_{n - 1}(D)}{\sum\limits_{k = 1}^{r_{{n - 1},i}}D^{a_{{n - 1},i,k}}}} + {{P(D)}{\sum\limits_{k = 1}^{\omega_{i}}D^{b_{i,k}}}}} = 0}}} & \; \end{matrix}$

where X₁(D), X₂(D), . . . , X_(n−1)(D) are polynomial representations of information sequences X₁, X₂, . . . , X_(n−1) (n is an integer equal to or greater than two), P(D) is a polynomial representation of a parity sequence.

That is, a case will be considered where the number of terms of X₁(D), X₂(D), . . . , X_(n−2)(D), X_(n−1)(D), and P(D) is not limited to three. Using the above description as a reference, the following condition becomes important in the code configuration method according to the present embodiment.

<Condition #25>

When i%α_(k)=j%α_(k) (i, j=0, 1, . . . , s−2, s−1; i≠j) holds true, the following holds true.

[Math. 97]

A _(Xk,i)(D)=A _(Xk,j)(D)  (Math. 97)

where k=1, 2, . . . , n−2, n−1.

<Condition #26>

When i%β=j%β (i, j=0, 1, . . . , s−2, s−1; i≠j) holds true, the following holds true.

[Math. 98]

B _(i)(D)=B _(j)(D)  (Math. 98)

That is, the encoding method according to the present embodiment is an encoding method of a low-density parity check convolutional code (LDPC-CC) having a time-varying period of s, includes a step of supplying an ith (i=0, 1, . . . , s−2, s−1) parity check polynomial represented by Math. 96-i and a step of acquiring an LDPC-CC codeword through a linear computation of the zeroth to (s−1)th parity check polynomials and input data, and it is assumed that a time-varying period of coefficient A_(Xk,i) of X_(k)(D) is α_(k) (α_(k) is an integer greater than one) (k=1, 2, . . . , n−2, n−1), a time-varying period of coefficient B_(Xk,i) of P(D) is β (β is an integer greater than one), time-varying period s is a least common multiple of α₁, α₂, . . . , α_(n−2), α_(n−1), and β, Math. 97 holds true when i%α_(k)=j%α_(k) (i, j=0, 1, . . . , s−2, s−1; i≠j) holds true and Math. 98 holds true when i%β=j%β (i, j=0, 1, . . . , s−2, s−1; i≠j) holds true (see FIG. 59).

Providing the above-described conditions makes it possible to reduce the number of parameters set using random numbers while increasing the time-varying period and achieve the effect of facilitating a code search.

At this time, to efficiently increase the time-varying period, if α₁, α₂, . . . , α_(n−2), α_(n−1) and β are coprime, the time-varying period can be increased. At this time, the time-varying period can be represented by α₁×α₂× . . . ×α_(n−2)×α_(n−1)×β.

However, even if there is no such relationship of being coprime, high error correction capability may be likely to be achieved. Based on the description of Embodiment 6, α₁, α₂, . . . , α_(n−2), α_(n−1) and β may be odd numbers. However, even when they are not odd numbers, high error correction capability may be likely to be achieved.

Embodiment 13

With regard to the LDPC-CC described in Embodiment 12, the present embodiment proposes an LDPC-CC that makes it possible to configure an encoder/decoder with a small circuit scale.

First, a code configuration method having a coding rate of ½, ⅔, having the above features will be described.

As described in Embodiment 12, an ith (i=0, 1, 2, . . . , s−2, s−1) parity check polynomial that satisfies zero of an LDPC-CC based on a parity check polynomial in which the time-varying period of X₁(D) is α₁, time-varying period of P(D) is β, time-varying period s is LCM(α₁, β) and coding rate is ½ is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 99} \right\rbrack} & \; \\ {{{{A_{{X\; 1},i}(D)}{X_{1}(D)}} + {{B_{i}(D)}{P(D)}}} = {{{\left( {D^{a_{1,i,1}} + D^{a_{1,i,2}} + \ldots + D^{a_{1,i,{ri}}}} \right){X_{1}(D)}} + {\left( {D^{b_{i,1}} + D^{b_{i,2}} + \ldots + D^{b_{i,{\omega \; i}}}} \right){P(D)}}} = {{{{X_{1}(D)}{\sum\limits_{k = 1}^{r_{i}}D^{a_{1,i,k}}}} + {{P(D)}{\sum\limits_{k = 1}^{\omega_{i}}D^{b_{i,k}}}}} = 0}}} & \left( {{{Math}.\mspace{14mu} 99}\text{-}i} \right) \end{matrix}$

Using Embodiment 12 as a reference, the following condition holds true.

<Condition #26>

When i%α₁=j%α₁(i, j=0, 1, . . . , s−2, s−1; i≠j) holds true, the following holds true.

[Math. 100]

A _(X1,i)(D)=A _(X1,j)(D)  (Math. 100)

<Condition #27>

When i%β=j%β (i, j=0, 1, . . . , s−2, s−1; i≠j) holds true, the following holds true.

[Math. 101]

B _(i)(D)=B _(j)(D)  (Math. 101)

Here, consider an LDPC-CC having a coding rate of ½ and an LDPC-CC having a coding rate of ⅔ which allows circuits to be shared between an encoder and a decoder. An ith (i=0, 1, 2, . . . , z−2, z−1) parity check polynomial that satisfies zero based on a parity check polynomial having a coding rate of ⅔ and a time-varying period of z is represented as shown below.

[Math. 102]

C _(X1,i)(D)X ₁(D)+C _(X2,i) ,i(D)X ₂(D)+E _(i)(D)P(D)=0  (Math. 102-i)

At this time, conditions of an LDPC-CC based on a parity check polynomial having a coding rate of ½ and an LDPC-CC of a coding rate of ⅔ which allows circuits to be shared between an encoder and a decoder based on Math. 99-i are described below.

<Condition #28>

In the parity check polynomial that satisfies zero of Math. 102-i, when the time-varying period of X₁(D) is α₁ and i%α₁=j%α₁ (i=0, 1, . . . , s−2, s−1, j=0, 1, . . . , z−2, z−1;) holds true, the following relation holds true.

[Math. 103]

A _(X1,i)(D)=C _(X1,j)(D)  (Math. 103)

<Condition #29>

In the parity check polynomial that satisfies zero of Math. 102-i, when the time-varying period of P(D) is β and i%β=j%β (i=0, 1, . . . , s−2, s−1, j=0, 1, . . . , z−2, z−1) holds true, the following holds true.

[Math. 104]

B _(i)(D)=E _(j)(D)  (Math. 104)

In the parity check polynomial that satisfies zero of Math. 102-i, since the time-varying period of X₂(D) may be assumed to be a₂, the following condition holds true.

<Condition #30>

When i%α₂=j%α₂ (i, j=0, 1, . . . , z−2, z−1; i≠j) holds true, the following also holds true.

[Math. 105]

C _(X2,i)(D)=C _(X2,j) ,i(D)  (Math. 102-i)

At this time, α₂ may be α₁ or β, α₂ may be a natural number which is coprime to α₁ and β. However, α₂ has a characteristic of enabling the time-varying period to be efficiently increased as long as it is a natural number coprime to α₁ and β. Based on the description of Embodiment 6, α₁, α₂, and β are preferably odd numbers. However, even when α₁, α₂, and β are not odd numbers, high error correction capability may be likely to be achieved.

Time-varying period z is LCM (α₁, α₂, β), that is, a least common multiple of α₁, α₂, and β.

FIG. 60 schematically shows a parity check polynomial of an LDPC-CC of a coding rate of ½, ⅔, that allows circuits to be shared between the encoder and decoder.

An LDPC-CC having a coding rate of ½ and an LDPC-CC of a coding rate of ⅔ which allows circuits to be shared between an encoder and a decoder has been described so far. Hereinafter, with further generalization, a code configuration method for an LDPC-CC having a coding rate of (n−1)/n and an LDPC-CC having a coding rate of (m−1)/m (n<m) which allows circuits to be shared between an encoder and a decoder will be described.

An ith (i=0, 1, 2, . . . , s−2, s−1) parity check polynomial that satisfies zero of an LDPC-CC based on a parity check polynomial of (n−1)/n in which the time-varying period of X₁(D) is α₁, time-varying period of X₂(D) is α₂, . . . , time-varying period of X_(n−1)(D) is α_(n−1), time-varying period of P(D) is β, time-varying period s is LCM (α₁, α₂, . . . , α_(n−1), β), that is, a least common multiple of α₁, α₂, . . . , α_(n−1), β is represented as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 106} \right\rbrack & \; \\ {{{{A_{{X\; 1},i}(D)}{X_{1}(D)}} + {{A_{{X\; 2},i}(D)}{X_{2}(D)}} + \ldots + {{A_{{{X\; n} - 1},i}(D)}{X_{n - 1}(D)}} + {{B_{i}(D)}{P(D)}}} = {{\left( {D^{a_{1,i,1}} + D^{a_{1,i,2}} + \ldots + D^{a_{1,i,{r\; i},1}}} \right){X_{1}(D)}} + {\left( {D^{a_{2,i,1}} + D^{a_{2,i,2}} + \ldots + D^{a_{2,i,{r\; i},2}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{a_{{n - 1},i,1}} + D^{a_{{n - 1},i,2}} + \ldots + D^{a_{{n - 1},i,{r\; i},{n - 1}}}} \right)X_{n - 1}(D)} +}} & \left( {{{Math}.\mspace{14mu} 106}\text{-}i} \right) \\ {\mspace{160mu} {{\left( {D^{b_{i,1}} + D^{b_{i,2}} + \ldots + D^{b_{i,{\omega \; i}}}} \right){P(D)}} = {{{{X_{1}(D)}{\sum\limits_{k = 1}^{r_{i,1}}D^{a_{1,i,k}}}} + {{X_{2}(D)}{\sum\limits_{k = 1}^{r_{i,2}}D^{a_{2,i,k}}}} + \ldots + {{X_{n - 1}(D)}{\sum\limits_{k = 1}^{r_{i,{n - 1}}}D^{a_{{n - 1},i,k}}}} + {{P(D)}{\sum\limits_{k = 1}^{\omega_{i}}D^{b_{i,k}}}}} = 0}}} & \; \end{matrix}$

Using Embodiment 12 as a reference, the following condition holds true:

<Condition #31>

When i%α_(k)=j%α_(k) (i, j=0, 1, . . . , s−2, s−1; i≠j) holds true, the following holds true.

[Math. 107]

A _(X1,i)(D)=C _(Xk,j)(D)  (Math. 107)

where, k=1, 2, . . . , n−1.

<Condition #32>

When i % P=j%β (i, j=0, 1, . . . , s−2, s−1; i≠j) holds true, the following relation holds true.

[Math. 108]

B _(i)(D)=B _(j)(D)  (Math. 108)

Here, consider an LDPC-CC of a coding rate of (n−1)/n and an LDPC-CC of a coding rate of (m−1)/m which allows circuits to be shared between an encoder and a decoder. The ith (i=0, 1, 2, . . . , z−2, z−1) parity check polynomial that satisfies zero based on a parity check polynomial of a coding rate of (m−1)/m and a time-varying period of z is represented as shown below.

$\begin{matrix} {\; \left\lbrack {{Math}.\mspace{14mu} 109} \right\rbrack} & \; \\ {{{{C_{{X\; 1},i}(D)}{X_{1}(D)}} + {{C_{{X\; 2},i}(D)}{X_{2}(D)}} + \ldots + {{C_{{{X\; n} - 1},i}(D)}{X_{n - 1}(D)}} + {{C_{{X\; n},i}(D)}{X_{n}(D)}} + \ldots + {{C_{{{Xm} - 1},i}(D)}{X_{m - 1}(D)}} + {{E_{i}(D)}{P(D)}}} = {{\left( {D^{c_{1,i,1}} + D^{c_{1,i,2}} + \ldots + D^{c_{1,i,{r\; i},1}}} \right){X_{1}(D)}} + {\left( {D^{c_{2,i,1}} + D^{c_{2,i,2}} + \ldots + D^{c_{2,i,{r\; i},2}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{c_{{n - 1},i,1}} + D^{c_{{n - 1},i,2}} + \ldots + D^{c_{{n - 1},i,{r\; i},{n - 1}}}} \right){X_{n - 1}(D)}} + {\left( {D^{c_{n,i,1}} + D^{c_{n,i,2}} + \ldots + D^{c_{n,i,{r\; i},n}}} \right){X_{n}(D)}} + \ldots + {\left( {D^{c_{{m - 1},i,1}} + D^{c_{{m - 1},i,2}} + \ldots + D^{c_{{m - 1},i,{r\; i},{m - 1}}}} \right)X_{m - 1}(D)} +}} & \left( {{{Math}.\mspace{14mu} 109}\text{-}i} \right) \\ {\mspace{160mu} {{\left( {D^{e_{i,1}} + D^{e_{i,2}} + \ldots + D^{e_{i,{\omega \; i}}}} \right){P(D)}} = {{{{X_{1}(D)}{\sum\limits_{k = 1}^{r_{i,1}}D^{c_{1,i,k}}}} + {{X_{2}(D)}{\sum\limits_{k = 1}^{r_{i,2}}D^{c_{2,i,k}}}} + \ldots + {{X_{n - 1}(D)}{\sum\limits_{k = 1}^{r_{i,{n - 1}}}D^{c_{{n - 1},i,k}}}} + {{X_{n}(D)}{\sum\limits_{k = 1}^{r_{i,n}}D^{c_{n,i,k}}}} + \ldots + {{X_{m}(D)}{\sum\limits_{k = 1}^{r_{i,m}}D^{c_{m,i,k}}}} + {{P(D)}{\sum\limits_{k = 1}^{\omega_{i}}D^{e_{i,k}}}}} = 0}}} & \; \end{matrix}$

At this time, conditions of the LDPC-CC based on the parity check polynomial having a coding rate of (n−1)/n represented by Math. 106-i and the LDPC-CC having a coding rate of (m−1)/m that allows circuits to be shared between an encoder and a decoder are described below.

<Condition #33>

In the parity check polynomial that satisfies zero of Math. 109-i, when the time-varying period of X_(k)(D) is α_(k) (k=1, 2, . . . , n−1) and i%α_(k)=j%α_(k) (i=0, 1, . . . , s−2, s−1;j=0, 1, . . . , z−2, z−1) holds true, the following holds true.

[Math. 110]

A _(Xk,i)(D)=C _(Xk,j)(D)  (Math. 110)

<Condition #34>

In the parity check polynomial that satisfies zero of Math. 109-i, when the time-varying period of P(D) is 0 and i%β=j%β (i=0, 1, . . . , s−2, s−1;j=0, 1, . . . , z−2, z−1) holds true, the following holds true.

[Math. 111]

B _(i)(D)=E _(j)(D)  (Math. 111)

In the parity check polynomial that satisfies zero of Math. 109-i, since the time-varying period of X_(h)(D) may be set to a_(h) (h=n, n+1, . . . , m−1), the following condition holds true.

<Condition #35>

When i%α_(h)=j%α_(h) (i, j=0, 1, . . . , z−2, z−1; i≠j) holds true, the following holds true.

[Math. 112]

C _(Xh,i)(D)=C _(Xh,j)(D)  (Math. 112)

Here, α_(h) may be a natural number. If all α₁, α₂, . . . , α_(n−1), n_(n), . . . , α_(m−1), and β are natural numbers that are coprime, there is a characteristic of enabling the time-varying period to be efficiently increased. Furthermore, based on the description of Embodiment 6, α₁, α₂, . . . , α_(n−1), α_(n), . . . , α_(m−1), and β are preferably odd numbers. However, even when these are not odd numbers, high error correction capability may be likely to be achieved.

Time-varying period z is LCM (α₁, α₂, . . . , α_(n−1), a_(n),· . . . , α_(m−1), β), that is, a least common multiple of α₁, α₂, . . . , α_(n−1), α_(n), . . . , α_(m−1), β.

Next, a specific encoder/decoder configuration method for the aforementioned LDPC-CC supporting a plurality of coding rates which can configure an encoder/decoder with a small circuit scale is described.

First, in the encoder and decoder according to the present invention, the highest coding rate among coding rates intended for the sharing of circuits is assumed to be (q−1)/q. When, for example, coding rates supported by the transmitting and receiving devices are assumed to be ½, ⅔, ¾, and ⅚, it is assumed that the codes of coding rates of ½, ⅔, and ¾ allow circuits to be shared between the encoder and decoder and a coding rate of ⅚ is not intended for the sharing of circuits between the encoder and decoder. At this time, the aforementioned highest coding rate of (q−1)/q is ¾. Hereinafter, an encoder for creating an LDPC-CC of a time-varying period of z (z is a natural number) will be described which can support a plurality of coding rates of (r−1)/r (r is an integer equal to or greater than two and equal to or smaller than q).

FIG. 61 is a block diagram showing an example of the main components of an encoder according to the present Embodiment. An encoder 5800 shown in FIG. 61 is an encoder supporting coding rates of ½, ⅔, and ¾. The encoder 5800 of FIG. 61 is mainly provided with an information generating section 5801, a first information computing section 5802-1, a second information computing section 5802-2, a third information computing section 5802-3, a parity computing section 5803, an adding section 5804, a coding rate setting section 5805, and a weight control section 5806.

The information generating section 5801 sets information X_(1,k), information X_(2,k), and information X_(3,k) at point in time k according to a coding rate designated by the coding rate setting section 5805. When, for example, the coding rate setting section 5805 sets the coding rate to ½, the information generating section 5801 sets input information data S_(j) in information X_(1,k) at point in time k, and sets zero in information X_(2,k) at point in time k and information X_(3,k) at point in time k.

Furthermore, when the coding rate is ⅔, the information generating section 5801 sets input information data S_(j) in information X_(1,k) at point in time k, sets input information data S_(j+1) in information X_(2,k) at point in time k, and sets zero in information X_(3,k) at point in time k.

Furthermore, when the coding rate is ¾, the information generating section 5801 sets input information data Sj in information X_(1,k) at point in time k, sets input information data S_(j+1) in information X_(2,k) at point in time k, and sets input information data S_(j+2) in information X_(3,k) at point in time k.

Thus, the information generating section 5801 sets input information data in information X_(1,k), information X_(2,k), and information X_(3,k) at point in time k according to the coding rate set by the coding rate setting section 5805, outputs set information X_(1,k) to the first information computing section 5802-1, outputs set information X_(2,k) to the second information computing section 5802-2, and outputs set information X_(3,k) to the third information computing section 5802-3.

The first information computing section 5802-1 computes X₁(D) according to A_(X1,i)(D) of Math. 106-i (also corresponds to Math. 109-i because Math. 110 holds true). Similarly, the first information computing section 5802-1 computes X₂(D) according to A_(X2,i)(D) of Math. 106-2 (also corresponds to Math. 109-i because Math. 110 holds true). Similarly, the third information computing section 580-3 computes X₃(D) according to C_(X3,i)(D) of Math. 109-i.

At this time, as described above, since Math. 109-i satisfies Condition #33 and Condition #34, even when the coding rate is changed, it is necessary to change neither the configuration of the first information computing section 5802-1 nor the configuration of the second information computing section 5802-2.

Therefore, when a plurality of coding rates are supported, by using the configuration of the encoder of the highest coding rate as a reference among coding rates for sharing encoder circuits, the other coding rates can be supported by the above operations. That is, the aforementioned LDPC-CC has an advantage of being able to share the first information computing section 5802-1 and the second information computing section 5802-2 which are main parts of the encoder regardless of the coding rate.

FIG. 62 shows the configuration inside the first information computing section 5802-1. The first information computing section 5802-1 in FIG. 62 is provided with shift registers 5901-1 to 5901-M, weight multipliers 5902-0 to 5902-M, and an adder 5903.

The shift registers 5901-1 through 5901-M are registers that store X_(1,i−t) (t=0, . . . , M−1), respectively, send a stored value when the next input is entered to a shift register on the right side and store a value output from a shift register on the left side.

The weight multipliers 5902-0 through 5902-M switch the value of h₁ ^((t)) to zero or one according to a control signal output from the weight control section 5904.

The adder 5903 performs an exclusive OR operation on the outputs of the weight multipliers 5902-0 to 5902-M, computes computation result Y_(1,k), and outputs computed Y_(1,k) to the adder 5804 in FIG. 61.

Also, the configurations inside the second information computing section 5802-2 and the third information computing section 5802-3 are the same as the first information computing section 5802-1, and therefore their explanation will be omitted. The second information computing section 5802-2 computes computation result Y_(2,k) as in the case of the first information computing section 5802-1 and outputs computed Y_(2,k) to the adder 5804 in FIG. 61. The third information computing section 5802-3 computes computation result Y_(3,k) as in the case of the first information computing section 5802-1 and outputs computed Y_(3,k) to the adder 5804 in FIG. 61.

The parity computing section 5803 in FIG. 61 computes P(D) according to B_(i)(D) of Math. 106-i (which also corresponds to Math. 109-i because Math. 111 holds true)).

FIG. 63 shows the configuration inside the parity computing section 5803 in FIG. 61. The parity computing section 5803 in FIG. 63 is provided with shift registers 6001-1 through 6001-M, weight multipliers 6002-0 through 6002-M, and an adder 6003.

The shift registers 6001-1 through 6001-M are registers that store P_(i−t) (t=0, . . . , M−1), respectively, send a stored value when the next input is entered to a shift register on the right side and store a value output from a shift register on the left side.

The weight multipliers 6002-0 through 6002-M switch the value of h₂ ^((t)) to zero or one according to a control signal output from the weight control section 6004.

The adder 6003 performs an exclusive OR operation on the outputs of the weight multipliers 6002-0 through 6002-M, computes computation result Z_(k), and outputs computed Z_(k) to the adder 5804 in FIG. 61.

Returning to FIG. 61 again, the adder 5804 performs exclusive OR operations on computation results Y_(1,k), Y_(2,k), Y_(3,k), and Z_(k) output from the first information computing section 5802-1, the second information computing section 5802-2, the third information computing section 5802-3, and the parity computing section 5803, obtains parity P_(k) at point in time k, and outputs parity P_(k). The adder 5804 also outputs parity P_(k) at point in time k to the parity computing section 5803.

The coding rate setting section 5805 sets the coding rate of the encoder 5800 and outputs coding rate information to the information generating section 5801.

The weight control section 5806 outputs the value of h₁ ^((m)) at point in time k based on a parity check polynomial that satisfies zero of Math. 106-i and Math. 109-i stored in the weight control section 5806 to the first information computing section 5802-1, the second information computing section 5802-2, the third information computing section 5802-3, and the parity computing section 5803. Furthermore, the weight control section 5806 outputs the value of h₂ ^((m)) at the timing to 6002-0 through 6002-M based on a parity check polynomial that satisfies zero corresponding to Math. 106-i and Math. 109-i stored in the weight control section 5806.

Also, FIG. 64 shows another configuration of an encoder according to the present embodiment. In the encoder of FIG. 64, the same components as in the encoder of FIG. 61 are assigned the same reference signs. Encoder 5800 in FIG. 64 is different from the encoder 5800 in FIG. 61 in that the coding rate setting section 5805 outputs information of coding rates to the first information computing section 5802-1, the second information computing section 5802-2, the third information computing section 5802-3, and the parity computing section 5803.

When the coding rate is ½, the second information computing section 5802-2 does not perform computation processing and outputs zero to the adder 5804 as computation result Y_(2,k). Conversely, when the coding rate is ½ or ⅔, the third information computing section 5802-3 does not perform computation processing and outputs zero to the adder 5804 as computation result Y_(3,k).

In the encoder 5800 in FIG. 61, the information generating section 5801 sets information X_(2,i) and information X_(3,i) at point in time i to zero according to the coding rate, whereas in the encoder 5800 in FIG. 64, the second information computing section 5802-2, and the third information computing section 5802-3 stop computation processing according to the coding rate, output zero as computation results Y_(2,k) and Y_(3,k), and therefore the computation results obtained are the same as those in the encoder 5800 in FIG. 61.

Thus, in the encoder 5800 of FIG. 64, the second information computing section 5802-2 and the third information computing section 5802-3 stop computation processing according to a coding rate, so that it is possible to reduce computation processing, compared to the encoder 5800 of FIG. 61.

As shown in the specific example above, with regard to the codes of the LDPC-CC of a coding rate of (n−1)/n described using Math. 106-i and Math. 109-i and the LDPC-CC of a coding rate of (m−1)/m (n<m) which allows the circuits to be shared between the encoder and decoder, it is possible to share the encoder circuits by providing an encoder of an LDPC-CC having a high coding rate of (m−1)/m, setting the computation output relating to Xk(D) (where k=n, n+1, . . . , m−1) to zero when the coding rate is (n−1)/n and calculating parity when the coding rate is (n−1)/n.

Next, the method of sharing decoder circuits of the LDPC-CC described in the present embodiment will be described in further detail.

FIG. 65 is a block diagram showing the main components of a decoder according to the present embodiment. Here, the decoder 6100 shown in FIG. 65 refers to a decoder that can support coding rates of ½, ⅔, and ¾. The decoder 6100 of FIG. 65 is mainly provided with a log-likelihood ratio setting section 6101 and a matrix processing computing section 6102.

The log-likelihood ratio setting section 6101 receives as input a reception log-likelihood ratio and coding rate calculated in a log-likelihood ratio computing section (not shown), and inserts a known log-likelihood ratio in the reception log-likelihood ratio according to the coding rate.

When, for example, the coding rate is ½, this corresponds to the encoder 5800 transmitting zeroes as X_(2,k) and X_(3,k), and therefore the log-likelihood ratio setting section 6101 inserts a fixed log-likelihood ratio corresponding to known bits that are zeroes as log-likelihood ratios of X_(2,k) and X_(3,k) and outputs the log-likelihood ratios inserted to the matrix processing computing section 6102. This will be explained below using FIG. 66.

As shown in FIG. 66, when the coding rate is ½, the log-likelihood ratio setting section 6101 receives as input received log-likelihood ratios LLR_(X1,k) and LLR_(Pk) corresponding to X_(1,k), and P_(k) at point in time k. The log-likelihood ratio setting section 6101 then inserts received log-likelihood ratios LLR_(X2,k) and LLR_(3,k) corresponding to X_(2,k) and X_(3,k). In FIG. 66, the received log-likelihood ratios encircled by dotted lines represent received log-likelihood ratios LLR_(X2,k) and LLR_(3,k) inserted by the log-likelihood ratio setting section 6101. The log-likelihood ratio setting section 6101 inserts log-likelihood ratios of fixed values as received log-likelihood ratios LLR_(X2,k) and LLR_(3,k).

Furthermore, when the coding rate is ⅔, this corresponds to the encoder 5800 transmitting a zero as X_(3,k), and therefore the log-likelihood ratio setting section 6101 inserts a fixed log-likelihood ratio corresponding to known bit that is a zero as a log-likelihood ratio of X_(3,k) and outputs the inserted log-likelihood ratio to the matrix processing computing section 6102. This will be explained using FIG. 67.

As shown in FIG. 67, when the coding rate is ⅔, log-likelihood ratio setting section 6101 receives as input received log-likelihood ratios LLR_(X1,k), LLR_(X2,k) and LLR_(Pk) corresponding to X_(1,k), X_(2,k), and P_(k). Thus, the log-likelihood ratio setting section 6101 inserts received log-likelihood ratio LLR_(3,k) corresponding to X_(3,k). In FIG. 67, the received log-likelihood ratios encircled by dotted lines represent received log-likelihood ratio LLR_(3,k) inserted by the log-likelihood ratio setting section 6101. The log-likelihood ratio setting section 6101 inserts a log-likelihood ratio of a fixed value as received log-likelihood ratio LLR_(3,k).

The matrix processing computing section 6102 in FIG. 65 is provided with a storage section 6103, a row processing computing section 6104, and a column processing computing section 6105.

The storage section 6103 stores an log-likelihood ratio, external value α_(mn) obtained by row processing and a priori value β_(nm) obtained by column processing.

The row processing computing section 6104 holds the row-direction weight pattern of LDPC-CC check matrix H of the maximum coding rate of ¾ among coding rates supported by the encoder 5800. The row processing computing section 6104 reads a necessary priori value β_(mn) from the storage section 6103, according to that row-direction weight pattern, and performs row processing computation.

In row processing computation, the row processing computing section 6104 decodes a single parity check code using a priori value β_(mn), and finds external value α_(mn).

Processing of the m-th row will be explained. Here, binary M×N matrix H={H_(mn)} is assumed to be a check matrix of an LDPC code to be decoded. Extrinsic value α_(mn) is updated using the following update formula for all sets (m, n) that satisfy H_(mn)=1.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 113} \right\rbrack & \; \\ {\alpha_{mn} = {\left( {\prod\limits_{n^{\prime} \in {{A{(m)}}{\backslash n}}}\; {{sign}\left( \beta_{{mn}^{\prime}} \right)}} \right){\Phi\left( {\sum\limits_{n^{\prime} \in {{A{(m)}}{\backslash n}}}{\Phi \left( {\beta_{{mn}^{\prime}}} \right)}} \right)}}} & \left( {{Math}.\mspace{14mu} 113} \right) \end{matrix}$

where Φ(x) is called a Gallager f function, and is defined by the following.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 114} \right\rbrack & \; \\ {{\Phi (x)} = {\ln \frac{{\exp (x)} + 1}{{\exp (x)} - 1}}} & \left( {{Math}.\mspace{14mu} 114} \right) \end{matrix}$

The column processing computing section 6105 holds the column-direction weight pattern of LDPC-CC check matrix H of the maximum coding rate of ¾ among coding rates supported by the encoder 5800. The column processing computing section 6105 reads a necessary external value α_(mn) from the storage section 321, according to that column-direction weight pattern, and finds a priori value β_(mn).

In column processing computation, the column processing computing section 6105 performs iterative decoding using input log-likelihood ratio λn and external value α_(mn), and finds a priori value β_(mn).

Processing of the mth column will be explained.

β_(mn) is updated using the following update formula for all sets (m, n) that satisfy H_(mn)=1. However, initial computation is performed assuming α_(mn)=0.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 115} \right\rbrack & \; \\ {\beta_{mn} = {\lambda_{n} + {\sum\limits_{m^{\prime} \in {{B{(n)}}/m}}\alpha_{m^{\prime}n}}}} & \left( {{Math}.\mspace{14mu} 115} \right) \end{matrix}$

The decoder 6100 obtains a posteriori log-likelihood ratio by repeating the aforementioned row processing and column processing a predetermined number of times.

As described above, the present embodiment assumes the highest coding rate among coding rates that can be supported to be (m−1)/m, and when the coding rate setting section 5805 sets the coding rate to (n−1)/n, the information generating section 5801 sets information from information X_(n,k) to information X_(m−1,k) to zero.

When, for example, the supported coding rates are ½, ⅔, and ¾ (m=4), the first information computing section 5802-1 receives information X_(1,k) at point in time k as input and computes the X₁(D) term. Furthermore, the second information computing section 5802-2 receives information X_(2,k) at point in time k as input and computes the X₂(D) term. Furthermore, the third information computing section 5802-3 receives information X_(3,k) at point in time k as input and computes the X₃(D) term.

Furthermore, the parity computing section 5803 receives parity P_(k−1) at point in time k−1 as input and computes the P(D) term. Furthermore, the adder 5804 obtains an exclusive OR of the computation results of the first information computing section 5802-1, the second information computing section 5802-2, and the third information computing section 5802-3, and the computation result of the parity computing section 5803 as parity P_(k) at point in time k.

With this configuration, upon creating an LDPC-CC supporting different coding rates, it is possible to share the configurations of information computing sections according to the above explanation, so that it is possible to provide an LDPC-CC encoder and decoder that can support a plurality of coding rates in a small computational complexity.

By adding the log-likelihood ratio setting section 6101 to the configuration of the decoder corresponding to the maximum coding rate from among coding rates supporting the sharing of the encoder and decoder circuits, it is possible to perform decoding supporting a plurality of coding rates. The log-likelihood ratio setting section 6101 sets log-likelihood ratios corresponding to information from information X_(n,k) to information X_(m−1,k) at point in time k to predetermined values according to the coding rate.

Although a case has been described above where a maximum coding rate supported by the encoder 5800 is ¾, the maximum coding rate supported is not limited to this, but a coding rate of (m−1)/m (m is an integer equal to or greater than five) may also be supported (naturally a maximum coding rate may also be ⅔). In this case, the encoder 5800 may be configured to include the first to (m−1)th information computing sections and the adder 5804 may be configured to obtain an exclusive OR of the computation results of the first to (m−1)th information computing sections and the computation result of the parity computing section 5803 as parity P_(k) at point in time k.

Furthermore, when all the coding rates supported by the transmitting and receiving devices (encoders and decoders) are codes based on the aforementioned method, providing the encoder and decoder of the highest coding rate among the supported coding rates can support coding and decoding at a plurality of coding rates, and the effect of reducing the scale of computation at this time is considerably large.

Furthermore, although sum-product decoding has been described above as an example of decoding scheme, the decoding method is not limited to this, but the present invention can be likewise implemented by using a decoding method (BP decoding) using a message-passing algorithm such as min-sum decoding, normalized BP (Belief Propagation) decoding, shuffled BP decoding, and offset BP decoding described in Non-Patent Literature 4 to Non-Patent Literature 6.

Next, a case will be explained where the present invention is applied to a communication device that adaptively switches the coding rate according to the communication condition. Also, an example case will be explained where the present invention is applied to a radio communication device, the present invention is not limited to this, but is equally applicable to a PLC (Power Line Communication) device, a visible light communication device, or an optical communication device.

FIG. 68 shows the configuration of a communication device 6200 that adaptively switches a coding rate. A coding rate determining section 6203 of the communication device 6200 in FIG. 68 receives as input a received signal transmitted from a communication device of the communicating party (e.g. feedback information transmitted from the communicating party), and performs reception processing of the received signal. Further, the coding rate determining section 6203 acquires information of the communication condition with the communication apparatus of the communicating party, such as a bit error rate, packet error rate, frame error rate, and reception field intensity (from feedback information, for example), and determines a coding rate and modulation scheme from the information of the communication condition with the communication device of the communicating party.

Further, the coding rate determining section 6203 outputs the determined coding rate and modulation scheme to the encoder 6201 and the modulating section 6202 as a control signal. However, the coding rate need not always be determined based on the feedback information from the communicating party.

Using, for example, the transmission format shown in FIG. 69, the coding rate determining section 6203 includes coding rate information in control information symbols and reports the coding rate used in the encoder 6201 to the communication device of the communicating party. Here, as is not shown in FIG. 69, the communicating party includes, for example, known signals (such as a preamble, pilot symbol, and reference symbol), which are necessary in demodulation or channel estimation.

In this way, the coding rate determining section 6203 receives a modulation signal transmitted from the communication device 6300 (see FIG. 70) of the communicating party, and, by determining the coding rate of a transmitted modulation signal based on the communication condition, switches the coding rate adaptively. The encoder 6201 performs LDPC-CC coding in the above steps, based on the coding rate designated by the control signal. The modulating section 6202 modulates the encoded sequence using the modulation scheme designated by the control signal.

FIG. 70 shows a configuration example of a communication device of the communicating party that communicates with communication device 6200. A control information generating section 6304 of the communication device 6300 in FIG. 70 extracts control information from a control information symbol included in a baseband signal. The control information symbol includes coding rate information. The control information generating section 6304 outputs the extracted coding rate information to log-likelihood ratio generating section 6302 and the decoder 6303 as a control signal.

The receiving section 6301 acquires a baseband signal by applying processing such as frequency conversion and quadrature demodulation to a received signal for a modulation signal transmitted from the communication device 6200, and outputs the baseband signal to the log-likelihood ratio generating section 6302. Also, using known signals included in the baseband signal, a receiving section 6301 estimates channel variation in a channel (e.g. radio channel) between the communication device 6200 and the communication device 6300, and outputs an estimated channel estimation signal to the log-likelihood ratio generating section 6302.

Also, using known signals included in the baseband signal, the receiving section 6301 estimates channel variation in a channel (e.g. radio channel) between the communication device 6200 and the communication device 6300, and generates and outputs feedback information (such as channel variation itself, which refers to channel state information, for example) for deciding the channel condition. This feedback information is transmitted to the communicating party (i.e. the communication device 6200) via a transmitting device (not shown), as part of control information. The log-likelihood ratio generating section 6302 calculates the log-likelihood ratio of each transmission sequence using the baseband signal, and outputs the resulting log-likelihood ratios to the decoder 6303.

As described above, according to the coding rate of (s−1)/s designated by a control signal, the decoder 6303 sets the log-likelihood ratios for information from information X_(s,k) to information X_(m−1,k) at point in time k, to predetermined values, and performs BP decoding using the LDPC-CC check matrix based on the maximum coding rate among coding rates to share the decoder 6303 circuits.

In this way, the coding rates of the communication device 6200 and the communication device 6300 of the communicating party to which the present invention is applied, are adaptively changed according to the communication condition.

Here, the method of changing the coding rate is not limited to the above, and the communication device 6300 of the communicating party can include the coding rate determining section 6203 and designate a desired coding rate. Also, the communication device 6300 can estimate channel variation from a modulation signal transmitted from communication devices 6200 and determine the coding rate. In this case, the above feedback information is not necessary.

Embodiment 14

The present Embodiment describes a design method for an LDPC-CC based on a parity check polynomial having a coding rate of R=⅓.

At point in time (hereinafter, time) j, information bit X and parity bits P₁ and P₂ are represented as X_(j), P_(1,j), and P_(2,j). At time j, the vector u_(j) is represented as u_(j)=(X₁, P_(1,j), P_(2,j)), thus giving the encoded sequence u=(u₀, u₁, . . . , u_(j), . . . )^(T). Given a delay operator D, the polynomial X, P₁, P₂ is expressed as X(D), P₁(D), P₂(D). Here, the two following parity check polynomials satisfy zero for a qth (where q=0, 1, . . . , m−1) LDPC-CC (TV-m-LDPC-CC) based on the parity check polynomial having a coding rate of R=⅓ and a time-varying period of m.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 116} \right\rbrack} & \; \\ {{{\left( {\text{?} + \text{?} + \ldots + \text{?} + 1} \right){X(D)}} + {\left( {\text{?} + \text{?} + \ldots + \text{?} + 1} \right){P_{1}(D)}} + {\left( {\text{?} + \text{?} + \ldots + \text{?}} \right){P_{2}(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 116} \right) \\ {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 117} \right\rbrack} & \; \\ {{{\left( {\text{?} + \text{?} + \ldots + \text{?} + 1} \right){X(D)}} + {\left( {\text{?} + \text{?} + \ldots + \text{?}} \right){P_{1}(D)}} + {\left( {\text{?} + \text{?} + \ldots + \text{?} + 1} \right){P_{2}(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 117} \right) \\ {\text{?}\text{indicates text missing or illegible when filed}} & \; \end{matrix}$

Here, a_(#q,y) (y=1, 2, . . . , r₁), α_(#q,z) (z=1, 2, . . . , r₂), b_(#q,p,i) (p=1, 2; i=1,2, . . . ε_(1,p)), and β_(#q,p,k) (k=1, 2, . . . , ε_(2,p)) are natural numbers. Also, a_(#q,v)≠a_(#q,ω) for ^(∀)(v, ω) in v, ω=1, 2, . . . , r₁; v≠ω); a_(#q,v)≠α_(#q,ω) for ^(∀)(v, ω) in v, ω=1, 2, . . . r₂; v≠ω; b_(#q,p,v)≠b_(#q,p,ω) for ^(∀)(v, ω) in v, ω=1, 2, . . . , ε_(1,p); v≠ω; and β_(#q,p,v)≠β_(#q,p,ω), for ^(∀)(v, ω) in v, ω=1, 2, . . . , ε_(2,p); v≠ω. The term D⁰P₁(D) exists for Math. 116, while the term D⁰P₂(D) does not exist. Thus, P_(1,j), i.e., the parity bit P₁ at time j, is simply and sequentially derivable from Math. 116. Similarly, the term D⁰P₂(D) exists for Math. 117, while the term D⁰P₁(D) does not exist. Thus, P₂ j, i.e., the parity bit P₂ at time j, is simply and sequentially derivable from Math. 117.

Given that an LDPC-CC is a type of LDPC code, and in consideration of the stopping set and short cycle pertaining to the error-correction capability thereof, the number of ones occurring in the parity check matrix ought to be kept sparse (see also Non-Patent Literature 17 and 18). Math. 116 and Math. 117 are considered in light of this point. First, given that each of Math. 116 and Math. 117 are a parity check polynomial enabling the parity bits P_(1,j), and P_(2,j) at time j to be obtained simply and sequentially, the following conditions emerge as necessary.

-   -   Math. 116 has a term P₁(D), and Math. 117 has a term P₂(D).

Then, in order to ensure that the number of ones in the parity check matrix is sparse, the term P₂(D) is deleted from Math. 116 and the term P₁(D) is deleted from Math. 117. Then, as described in the present description, the row weights and column weights of the respective parity check matrices for each of X, P₁, P₂ are made as equal as possible. Accordingly, the following two parity check polynomials satisfy zero for the qth (where q=0, 1, . . . , m−1) of the TV-m-LDPC-CC having a coding rate of R=⅓ under discussion.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 118} \right\rbrack} & \; \\ {{{\left( {D^{a_{{\# q},1}} + 1} \right){X(D)}} + {\left( {D^{b_{{\# q},1,1}} + D^{b_{{\# q},1,2}} + 1} \right){P_{1}(D)}}} = {{{{A_{X,{\# q}}(D)}{X(D)}} + {{B_{{P\; 1},{\# q}}(D)}{P_{1}(D)}}} = 0}} & \left( {{Math}.\mspace{14mu} 118} \right) \\ {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 119} \right\rbrack} & \; \\ {{{\left( {D^{a_{{\# q},1}} + 1} \right){X(D)}} + {\left( {D^{b_{{\# q},1,1}} + D^{b_{{\# q},1,2}} + 1} \right){P_{1}(D)}}} = {{{{A_{X,{\# q}}(D)}{X(D)}} + {{B_{{P\; 1},{\# q}}(D)}{P_{1}(D)}}} = 0}} & \left( {{Math}.\mspace{14mu} 119} \right) \end{matrix}$

In Math. 118, the maximum degree of each of A_(X,#q)(D) and B_(p1,#q)(D) is, respectively, Γ_(X,#q) and Γ_(P1,#q). The maximum value of Γ_(X,#q) and Γ_(P1,#q) is Γ_(#q). The maximum value of Γ_(#q) Γ. Similarly, in Math. 119, the maximum degree of each of E_(X,#q)(D) and F_(P2,#q)(D) is, respectively, Ω_(X,#q) and Ω_(#P2,#q). The maximum value of Ω_(X,#q) and Ω_(P1,#q) is Ω_(#q). The maximum value of Ω_(#q) is Ω. Also, Φ is a large value of Γ and Ω.

In consideration of the encoded sequence u, when Φ is used, vector h_(q,1) corresponding to the qth parity check polynomial of Math. 118 is expressed as Math. 120.

[Math. 120]

h _(q,1) =[h _(q,1,Φ,) h _(q,1,Φ−1) , . . . ,h _(q,1,1) ,h _(q,1,0])  (Math. 120)

In Math. 120, h_(q,1,v) (v=0, 1, . . . , Φ) is a 1×3 vector, expressed as [U_(q,v,X), V_(q,v), 0]. This is because the parity check polynomial of Math. 118 has terms U_(q,v,X)D^(v)X(D) and V_(q,v)D^(v)P₁(D) (where U_(q,v,X), V_(q,v) ε[0,1]). In such circumstances, the parity check polynomial that satisfies zero for Math. 118 has terms D⁰X(D) and D⁰P₁(D), and thus also satisfies h_(q,0)=[1, 1, 0].

Similarly, vector h_(q,2) corresponding to the qth parity check polynomial of math. 119 is expressed as Math. 121.

[Math. 121]

h _(q,2) =[h _(q,2,Φ,) h _(q,2,Φ−1) , . . . ,h _(q,2,2) ,h _(q,2,0])  (Math. 120)

In Math. 121, h_(q,2,v) (v=0, 1, . . . , Φ) is a 1×3 vector, expressed as [U_(q,v,X), V_(q,v), 0]. This is because the parity check polynomial of Math. 119 has terms U_(q,v,X)D^(v)X(D) and V_(q,v)D^(v)P(D) (where U_(q,v,X), V_(q,v) ε[0,1]). In such circumstances, the parity check polynomial that satisfies zero for Math. 119 has terms D⁰X(D) and D⁰P₁ (D), and thus also satisfies h_(q,0)=[1, 1, 0].

Using Math. 120 and Math. 121, the parity check matrix for the TV-m-LDPC-CC having a coding rate of R=⅓ is expressed as Math. 122. In Math. 122, Λ(k)=Λ(k+2m) is satisfied for ^(∀)k. Here, Λ(k) is a vector expressed using Math. 120 or Math. 121 for the kth row of the parity check matrix.

[Math.  122]                                                                      (Math.  122) $H = \begin{bmatrix} \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \; & \; \\ \; & h_{0,1,\Phi} & h_{0,1,{\Phi - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,1,0} & \; & \; & \; & \; & \; & \; & \; \\ \; & h_{0,2,\Phi} & h_{0,2,{\Phi - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,2,0} & \; & \; & \; & \; & \; & \; & \; \\ \; & \; & h_{1,1,\Phi} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{1,1,1} & h_{1,1,0} & \; & \; & \; & \; & \; & \; \\ \; & \; & h_{1,2,\Phi} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{1,2,1} & h_{1,2,0} & \; & \; & \; & \; & \; & \; \\ \; & \; & \; & \ddots & \; & \; & \; & \mspace{11mu} & \; & \; & \ddots & \; & \; & \; & \; & \; \\ \; & \; & \; & \; & h_{{m - 1},1,\Phi} & h_{{m - 1},1,{\Phi - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},1,0} & \; & \; & \; & \; \\ \; & \; & \; & \; & h_{{m - 1},2,\Phi} & h_{{m - 1},2,{\Phi - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},2,0} & \; & \; & \; & \; \\ \; & \; & \; & \; & \; & h_{0,1,\Phi} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,1,1} & h_{0,1,0} & \; & \; & \; \\ \; & \; & \; & \; & \; & h_{0,2,\Phi} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,2,1} & h_{0,2,0} & \; & \; & \; \\ \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; \\ \; & \; & \; & \; & \; & \; & \; & h_{{m - 1},1,\Phi} & \ldots & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},1,0} & \; \\ \; & \; & \; & \; & \; & \; & \; & h_{{m - 1},2,\Phi} & \ldots & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},2,0} & \; \\ \; & \; & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots \end{bmatrix}$

1.1 TV-m-LDPC-CC with Coding Rate of ⅓ as Presently Discussed

The parity check polynomials that satisfy zero for the qth (where q=0, 1, . . . , m−1) based on Math. 118 and Math. 119 for the TV-m-LDPC-CC having a coding rate of R=⅓ are expressed as follows.

[Math. 123]

(D ^(a) ^(#q,1) +D ^(a) ^(#q,2) + . . . +D ^(a) ^(#q,r1) )X(D)+(D ^(b) ^(#q,1,1) +D ^(b) ^(#q,1,2) + . . . +D ^(b) ^(#q,1,c) _(1,1))P ₁(D)=0  (Math. 123)

[Math. 124]

(D ^(α) ^(#q,1) +D ^(α) ^(#q,2) + . . . +D ^(α) ^(#q,r2) )X(D)+(D ^(β) ^(#q,2,1) +D ^(β) ^(#q,2,2) + . . . D ^(β) ^(#q,22,2) )P ₂(D)=0  (Math. 124)

Here, a_(#q,y) (y=1,2, . . . , r₁), α_(#q,z) (Z=1, 2, . . . , r₂), b_(#q,1,i) (i=1, 2, . . . , ε_(1,1)), and β_(#q,2,k) (k=1, 2, . . . , ε_(2,2)) are integers greater than or equal to zero, a_(#q,v)≠a_(#q,ω) for ^(∀)(v, ω) in v, ω=1, 2, . . . , r₁; v≠ω; α_(#q,v)≠a_(q,ω) for ^(∀)(v, ω) in v, ω=1, 2, . . . , r₂; v≠ω; b_(#q,1,v)≠b_(#q,1,ω) for ^(∀)(v, ω) in v, ω=1, 2, . . . , ε_(1,1); v≠ω; and β_(#q,2,v)#β_(#q,2ω) for ^(∀)(v, ω) in v, ω=1, 2, . . . , ε_(2,2); v≠ω. The parity check polynomial that satisfies zero for Math. 123 is termed parity check polynomial #q-1, and the parity check polynomial that satisfies zero for Math. 124 is termed parity check polynomial #q-2. Accordingly, the following features exist.

Feature 1-1:

The following relationship holds between term D^(a#v,i)X(D) of parity check polynomial #v-1 that satisfies zero for the parity check polynomial of Math. 123 and term D^(a#ω,j)X(D) of parity check polynomial #ω-1 that satisfies zero for the parity check polynomial of Math. 123 (where v, ω=0, 1, . . . , m−1 (v≦ω); i, j=1, 2, . . . , r₁), and between term D^(b#v,1,i)P₁(D) of parity check polynomial #v-1 that satisfies zero for the parity check polynomial of Math. 123 and term D^(b#ω,1,j)P₁(D) of parity check polynomial #ω-1 that satisfies zero for the parity check polynomial of Math. 123 (where v, ω=0, 1, . . . , m−1 (v≦ω); i,j=1, 2, . . . , ε_(1,1)).

<1> When v=ω:

When {a_(#v,i) mod m=a_(#ω,j) mod m}∩{i≠j} holds true, then as shown in FIG. 71, a variable node $1 exists at the edge formed between the check node corresponding to parity check polynomial #v-1 and the check node corresponding to parity check polynomial #ω-1.

When {b_(#v,1,i) mod m=b_(#w,1,j) mod m}∩{i≠j} holds true, then as shown in FIG. 71, a variable node $1 exists at the edge formed between the check node corresponding to parity check polynomial #v-1 and the check node corresponding to parity check polynomial #ω-1.

<2> When v≠ω:

Let ω−v=L.

1-1) When a_(#v,i) mod m<a_(#ω,j) mod m:

When (a_(#ω,j) mod m)−(a_(#v,i) mod m)=L, then as shown in FIG. 71, a variable node $1 exists at the edge formed between the check node corresponding to parity check polynomial #v-1 and the check node corresponding to parity check polynomial #ω-1.

1-2) When a_(#v,i) mod m>a_(#ω,j) mod m:

When (a_(#ω,j) mod m)−(a_(#v,i) mod m)=L+m, then as shown in FIG. 71, a variable node $1 exists at the edge formed between the check node corresponding to parity check polynomial #v-1 and the check node corresponding to parity check polynomial #ω-1.

2-1) When b_(#v,1,i) mod m<b_(#ω,1,j) mod m:

When (b_(#ω,1,j) mod m)−(b_(#v,1,i) mod m)=L, then as shown in FIG. 71, a variable node $1 exists at the edge formed between the check node corresponding to parity check polynomial #v-1 and the check node corresponding to parity check polynomial #ω-1.

2-2) When b_(#v,1,i) mod m>b_(#ω,1,j) mod m:

When (b_(#ω,1,j) mod m)−(b_(#v,1,i) mod m)=L+m, then as shown in FIG. 71, a variable node $1 exists at the edge formed between the check node corresponding to parity check polynomial #v-1 and the check node corresponding to parity check polynomial #ω-1.

Feature 1-2:

The following relationship holds between term D^(α#v,i)X(D) of parity check polynomial #v-2 that satisfies zero for the parity check polynomial of Math. 124 and term D^(α#ω,j)X(D) of parity check polynomial #ω-2 that satisfies zero for the parity check polynomial of Math. 124 (where v, ω=0, 1, . . . , m−1 (v≦ω); i, j=1, 2, . . . , r₂), and between term D^(β#v,2,i)P₂(D) of parity check polynomial #v-2 that satisfies zero for the parity check polynomial of Math. 124 and term D^(β#ω,2,j)P₂(D) of parity check polynomial #ω-2 that satisfies zero for the parity check polynomial of Math. 124 (where v, ω=0, 1, . . . , m−1 (v≦ω); i, j=1, 2, . . . , ε_(1,2)).

<1> When v=ω:

When {a_(#v,i) mod m=a_(#ω,j) mod m}∩{i≠j} holds true, then as shown in FIG. 71, a variable node $1 exists at the edge formed between the check node corresponding to parity check polynomial #v-2 and the check node corresponding to parity check polynomial #ω-2.

When {β≠_(v,2,i) mod m=β_(#ω,2,j) mod m})∩{i≠j} holds true, then as shown in FIG. 71, a variable node $1 exists at the edge formed between the check node corresponding to parity check polynomial #v-2 and the check node corresponding to parity check polynomial #ω-2.

<2> When v≠ω:

Let ω-v=L. Thus,

1-1) When α_(#v,i mod m<α) _(#j mod m:)

When (α_(#ω,j) mod m)−(α_(#v,i) mod m)=L, then as shown in FIG. 71, a variable node $1 exists at the edge formed between the check node corresponding to parity check polynomial #v-2 and the check node corresponding to parity check polynomial #ω-2.

1-2) When α_(#v,i) mod m≦α_(#ω,j) mod m:

When (α_(#ω,j) mod m)−(α_(#v,i) mod m)=L+m, then as shown in FIG. 71, a variable node $1 exists at the edge formed between the check node corresponding to parity check polynomial #v-2 and the check node corresponding to parity check polynomial #ω-2.

2-1) When β_(#v,2,i) mod m<β_(#v,2,j) mod m:

When (β_(#,2,j) mod m)−(3≠_(v,2,i) mod m)=L, then as shown in FIG. 71, a variable node $1 exists at the edge formed between the check node corresponding to parity check polynomial #v-2 and the check node corresponding to parity check polynomial #ω-2.

2-2) When β_(#v,2,i) mod m>β_(#ω,2,j) mod m:

When (β_(#ω,2,j) mod m)−(β_(#v,2,i) mod m)=L+m, then as shown in FIG. 71, a variable node $1 exists at the edge formed between the check node corresponding to parity check polynomial #v-2 and the check node corresponding to parity check polynomial #ω-2.

Feature 2:

The following relationship holds between term D^(a#v,i)X(D) of parity check polynomial #v-1 that satisfies zero for the parity check polynomial of Math. 123 and term D^(α#ω,j)X(D) of parity check polynomial #ω-2 that satisfies zero for the parity check polynomial of Math. 124 (where v, ω=0, 1, . . . , m−1; i=1, 2, . . . , r₁;j=1, 2, . . . , r₂).

<1> When v=ω:

When {α_(#v,i) mod m=α_(#ω,j) mod m} holds true, then as shown in FIG. 71, a variable node $1 exists at the edge formed between the check node corresponding to parity check polynomial #v-1 and the check node corresponding to parity check polynomial #ω-2.

<2> When v≠ω:

Let ω-v=L. Thus,

1) When α_(#v,i) mod m<α_(#ω,j) mod m:

When (α_(#ω,j) mod m)−(α_(#v,i) mod m)=L, then as shown in FIG. 71, a variable node $1 exists at the edge formed between the check node corresponding to parity check polynomial #v-1 and the check node corresponding to parity check polynomial #ω-2.

2) When α_(#v,i) mod m>α_(ω,j) mod m:

When (α_(#ω,j) mod m)−(α_(#v,i) mod m)=L+m, then as shown in FIG. 71, a variable node $1 exists at the edge formed between the check node corresponding to parity check polynomial #v-1 and the check node corresponding to parity check polynomial #ω-2.

Theorem 1 holds for the TV-m-LDPC-CC having a coding rate of R=⅓ and a cycle length of 6 (hereinafter, CL6).

Theorem 1: The following two conditions apply to the parity check polynomial that satisfies zero for Math. 123 and Math. 124 of the TV-m-LDPC-CC having a coding rate of R=⅓.

C#1.1: There exists some q for which b_(#q,1,i) mod m=b_(#q,1,j) mod m=b_(#q,1,k) mod m. Here, i≠j, i≠k, j≠k.

C#1.2: There exists some q for which β_(#q,2,i) mod m=β_(#q,2,j) mod m=β_(#q,2,k) mod m. Here, i≠j, i≠k, j≠k.

When either one of C#1.1 and C#1.2 hold, then at least one CL6 is present.

In the present discussion, two parity check polynomials that satisfy a qth (where q=0, 1, . . . , m−1) zero of the TV-m-LDPC-CC having a coding rate of R=⅓ are represented as Math. 118 and Math. 119. CL6 does not exist in the parity check polynomial of Math. 118 due to conditions such as those of Theorem 1, because only two terms therein pertain to X(D). The same applies to Math. 119.

The two parity check polynomials each satisfying a qth (q=0, 1, . . . , m−1) of the TV-m-LDPC-CC having a coding rate of R=⅓ are represented by Math. 118 and Math. 119, which generalize as follows.

[Math. 125]

(D ^(a) ^(#q,1) +D ^(a) ^(#q,2) )X(D)+(D ^(b) ^(#q,1,1) +D ^(b) ^(#q,1,2) +D ^(b) ^(#q,1,3) )P ₁(D)=0  (Math. 123)

[Math. 126]

(D ^(α) #q,1+D ^(α) #q,2)X(D)+(D ^(β) #q,2,1+D ^(β) #q,2,2+D ^(β) #q,2,3 )P ₂(D)=0  (Math. 124)

Thus, according to Theorem 1, the following must hold true in order to produce CL6: For P₁(D) of Math. 125, {b_(#q,1,1) mod m≠b_(#q,1,2) mod m}∩{b_(#q,1,i) mod m≠b_(#q,1,3) mod m}∩{b_(#q,1,2) mod m≠b_(#q,1,3) mod m} holds, and for {β_(#q,2,1) mod m≠β_(#q,2,2) mod m}∩{β_(#q,2,1) mod m≠β_(#q,2,3) mod m}∩{β_(#q,2,2) mod m≠β_(#q,2,3) mod m}holds.

Then, the following condition applies, derived from Feature 2 in order to homogenize the column weights pertaining to information X1 and the column weights pertaining to parity P1 and P2.

C#2: In Math. 125 and Math. 126, (a_(#q,1) mod m,a_(#q,2) mod m)=(N₁, N₂) ∩ (b_(#q,1,1) mod m, b_(#q,1,2) mod m, b_(#q,1,3) mod m)=(M₁, M₂, M₃) ∩ (a_(#q,1) mod m, α_(q,2) mod m)=(n₁, n₂) ∩ (β_(#q,2,1) mod m, β_(#q,2,2) mod m, β_(#q,2,3) mod m)=(m₁, m₂, m₃) holds for ^(∀)q. Also, {b_(#q,1,1) mod m b_(#q,1,2) mod m}∩{b_(#q,1,1) mod m f b_(#q,1,3) mod m}∩{b_(#q,1,2) mod m≠b_(#q,1,3) mod m}, and {β_(#q,2,1) mod m β_(#q,2,2) mod m}∩{β_(#q,2,1) mod m≠β_(#β#q,2,3) mod m}∩{β_(#q,2,2) mod m β_(#q,2,3) mod m} hold.

The following discussion considers an TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119.

1.2 Code Design of TV-m-LDPC-CC with Coding Rate of ⅓

The following inference applies to an TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, based on Embodiment 6.

Inference #1: When BP decoding used for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, the positions at which ones exist in the parity check matrix approach a state of randomness as the time-varying period m of the TV-m-LDPC-CC grows large. As such, good error-correction capability are obtainable.

The following discusses a method for realizing Theorem #1.

[TV-m-LDPC-CC Features]

The following feature is described as holding when a tree is drawn pertaining to Math. 118 and Math. 119, which are parity check polynomials that satisfy the #q-1 and #q-2 zeroes of the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119.

Feature 3: For the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, when the time-varying period m is prime, then with respect to term X(D), circumstances in which C#3.1 holds are plausible.

C#3.1: In Math. 125, the parity check polynomial corresponding to Math. 118 that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, for term X(D), a_(#q,i) mod m≠a_(#q,j) mod m holds for ^(∀)q (where q=0, . . . , m−1). Here, i≠j.

For Math. 125, the parity check polynomial corresponding to Math. 118 that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, a tree is draw able that is restricted to variable nodes corresponding to D^(a#q,i)X(D), D^(α#q,j)X(D) that satisfy C#3.1. Here, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-1 zero of Math. 125 has, due to Feature 1, check nodes corresponding to every parity check polynomial #0-1 through #(m−1)−1 for ^(∀)q.

Similarly, for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119 when C#2 is satisfied, when the time-varying period m is prime, then with respect to term P₁(D), circumstances in which C#3.2 holds are plausible.

C#3.2: In Math. 125, the parity check polynomial corresponding to Math. 118 that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, for term P₁(D), b_(#q,1,i) mod m≠b_(#q,1,j) mod m holds for ^(∀)q (where q=0, . . . , m−1) and i≠j.

In Math. 125, the parity check polynomial corresponding to Math. 118 that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, circumstances are plausible in which a tree is drawn that is restricted to variable nodes corresponding to D^(b#q,1,i)P₁(D), D^(b#q,1,j)P₁(D) satisfying C#3.2. Here, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-1th zero of Math. 125 has, due to Feature 1, check nodes corresponding to every parity check polynomial #0-1 through #(m−1)−1 for ^(∀)q.

Also, for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119 when C#2 is satisfied, when the time-varying period m is prime, then with respect to a given term X(D), circumstances in which C#3.3 holds are plausible.

C#3.3: In Math. 126, the parity check polynomial corresponding to Math. 119 that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, for term X(D), α_(#q,i) mod m≠α_(#q,j) mod m holds for ^(∀)q (where q=0, . . . , m−1).

For Math. 126, the parity check polynomial corresponding to Math. 119 that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, a tree is drawable that is restricted to variable nodes corresponding to D^(α#q,i)X(D), D^(#q,j)X(D) that satisfy C#3.3. Here, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-1 zero of Math. 126 has, due to Feature 1, check nodes corresponding to every parity check polynomial #0-2 through #(m−1)−2 for ^(∀)q.

Similarly, for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, when the time-varying period m is prime, then with respect to term P₂(D), circumstances in which C#3.4 holds are plausible.

C#3.4: In Math. 126, the parity check polynomial corresponding to Math. 119 that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, for term P₂(D), β_(#q,2,i) mod m≠β_(#q,2,j) mod m holds for ^(∀)q (where q=0, . . . , m−1), and i≠j.

In Math. 126, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119, circumstances are plausible in which a tree is drawn that is restricted to variable nodes corresponding to D^(β#q,2)P₂(D), D^(β#q,2)P₂(D) satisfying C#3.4. Here, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #(q−2)th zero of Math. 126 has, due to Feature 1, check nodes corresponding to every parity check polynomial #0-2 through #(m−1)−2 for ^(∀)q.

Feature 4: For the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, when the time-varying period m is non-prime, then with respect to term X(D), circumstances in which C#4.1 holds are plausible.

C#4.1: In Math. 125, for the parity check polynomial corresponding to Math. 118 that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, for term X(D), when a_(#q,i) mod m≧a_(#q,j) mod m, |(a_(#q).i mod m)−(a_(#q,j) mod m)| is a divisor of m other than one for ^(∀)q. Here, i≠j.

For Math. 125, the parity check polynomial corresponding to Math. 118 that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, a tree is drawable that is restricted to variable nodes corresponding to D^(a#q,i)X(D), D^(a#q,j)X(D) that satisfy C#4.1. Here, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-1 zero of Math. 125 has, due to Feature 1, check nodes corresponding to every parity check polynomial #0-1 through #(m−1)−1 for ^(∀)q.

Similarly, for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, when the time-varying period m is non-prime, then with respect to term P₁(D), circumstances in which C#4.2 holds are plausible.

C#4.2: In Math. 125, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, for term P₁(D), when b_(#q,1,i) mod m>b_(#q,1,j) mod m, |(b_(#q,1,i) mod m)−(b_(#q,1,j) mod m)| is a divisor of m other than one for ^(∀)q. Here, i≠j.

In Math. 125, the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, circumstances are plausible in which a tree is drawn that is restricted to variable nodes corresponding to D^(b#q,1,i)P₁(D), D^(b#q,1,j)P₁(D) satisfying C#4.2. Here, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-1 zero of Math. 125 does not have, due to Feature 1, check nodes corresponding to any parity check polynomial #0-1 through #(m−1)−1 for ^(∀)q.

Also, for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, when the time-varying period m is non-prime, then with respect to term X(D), circumstances in which C#4.3 holds are plausible.

C#4.3: In Math. 126, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, with respect to term X(D), when a_(#q,i) mod m≧α_(#q,j) mod m, then |(a_(#q,i) mod m)−(a_(#q,j) mod m)| is a divisor of m other than one. Here, i≠j.

For Math. 126, the parity check polynomial corresponding to Math. 119 that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, a tree is drawable that is restricted to variable nodes corresponding to D^(α#q,i)X(D), D^(α#q,j)X(D) that satisfy C#4.3. Here, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-2 zero of Math. 126 does not have, due to Feature 1, check nodes corresponding to any parity check polynomial #0-2 through #(m−1)−2 for ^(∀)q.

Similarly, for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, when the time-varying period m is non-prime, then with respect to term P₂(D), circumstances in which C#4.4 holds are plausible.

C#4.4: In Math. 126, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, with respect to term P₂(D), when β_(#q,2,i) mod m≧β_(#q,2,j) mod m, then |(β_(#q,2,i) mod m)−(β_(#q,2,j) mod m)| is a divisor of m other than one. Here, i≠j.

In Math. 126, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and that satisfies C#2, circumstances are plausible in which a tree is drawn that is restricted to variable nodes corresponding to D^(#q,2,i)P₂(D), D^(β#q,2,j)P₂(D) satisfying C#4.2. Here, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-2 zero of Math. 126 does not have, due to Feature 1, check nodes corresponding to any parity check polynomial #0-2 through #(m−1)−2 for ^(∀)q.

Next, a feature is described pertaining to an TV-m-LDPC-CC having a coding rate of R=⅓, is definable by Math. 118 and Math. 119, and satisfies C#2 when the time-varying period m is, specifically, an even number.

Feature 5: For the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, when the time-varying period m is even, then with respect to term X(D), circumstances in which C#53.1 holds are plausible.

C#5.1: In Math. 125, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, for term X(D), when a_(#q,i) mod m≧a_(#q,j) mod m, |(a_(#q,i) mod m)−(a_(#q,j) mod m)| is an even number. Here, i≠j.

For Math. 125, the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, a tree is drawable that is restricted to variable nodes corresponding to D^(a#q,i)X(D), D^(a#q,j)X(D) that satisfy C#5.1. Here, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-1 zero of Math. 125 only has, due to Feature 1, check nodes corresponding to parity check polynomials for which q is odd, for #q-1. Also, for #q-1 when q is even, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-1 zero of Math. 125 only has, due to Feature 1, check nodes corresponding to parity check polynomials for which q is even.

Similarly, for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, when the time-varying period m is even, then with respect to term P₁(D), circumstances in which C#5.2 holds are plausible.

C#5.2: In Math. 125, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, for term P₁(D), when b_(#q,1,i) mod m≧b_(#q,1,j) mod m, |(b_(#q,1,i) mod m)−(b_(#q,1,j) mod m)| is even for ^(∀)q. Here, i≠j.

In Math. 125, the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, circumstances are plausible in which a tree is drawn that is restricted to variable nodes corresponding to D^(b#q,1,i)P₁(D), D^(b#q,1,j)P₁(D) satisfying C#5.2. Here, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-1 zero of Math. 125 only has, due to Feature 1, check nodes corresponding to parity check polynomials for which q is odd, for #q-1. Also, for #q-1 when q is even, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-1 zero of Math. 125 only has, due to Feature 1, check nodes corresponding to parity check polynomials for which q is even.

Also, for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119 when C#2 is satisfied, when the time-varying period m is even, then with respect to a given term X(D), circumstances in which C#5.3 holds are plausible.

C#5.3: In Math. 126, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, with respect to term X(D), when α_(#q,i) mod m≧α_(#q,j) mod m, then |(α_(#q,i) mod m)−(α_(#q,j) mod m)| is even. Here, i≠j.

For Math. 126, the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, a tree is drawable that is restricted to variable nodes corresponding to D^(α#q,i)X(D), D^(α#q,j) X(D) that satisfy C#5.3.

Here, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-2 zero of Math. 126 only has, due to Feature 1, check nodes corresponding to parity check polynomials for which q is odd, for #q-2. Also, for #q-2 when q is even, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-2 zero of Math. 126 only has, due to Feature 1, check nodes corresponding to parity check polynomials for which q is even.

Similarly, for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, when the time-varying period m is even, then with respect to term P₂(D), circumstances in which C#5.4 holds are plausible.

C#5.4: In Math. 126, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, with respect to term P₂(D), when β_(#q,2,i) mod m≧β_(#q,2,j) mod m, then |(β_(#q,2,i) mod m)−(β_(#q,2,j) mod m)| is even. Here, i≠j.

In Math. 126, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and that satisfies C#2, circumstances are plausible in which a tree is drawn that is restricted to variable nodes corresponding to D^(β#q,2,i)P₂(D), D^(β#q,2,j)P₂(D) satisfying C#5.4. Here, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-2 zero of Math. 126 only has, due to Feature 1, check nodes corresponding to parity check polynomials for which q is odd, for #q-2. Also, for #q-2 when q is even, a tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-2 zero of Math. 126 only has, due to Feature 1, check nodes corresponding to parity check polynomials for which q is even.

[Design Method for TV-m-LDPC-CC with Coding Rate of ⅓]

The following discussion considers a design policy that provides high error-correction capability to an TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119.

The following discussion considers circumstances such as C#6.1, C#6.2, C#6.3, and C#6.4.

C#6.1: In Math. 125, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, when a tree is drawn that is restricted to variable nodes corresponding to D^(α#q,i)X(D), D^(α#q,j)X(D) (where i≠j), the tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-1 zero of Math. 125 does not have check nodes corresponding to any parity check polynomial #0-1 through #(m−1)−1 for ^(∀)q.

C#6.2: In Math. 125, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, when a tree is drawn that is restricted to variable nodes corresponding to D^(b#q,1,i)P₁(D), D^(b#q,1,j)P₁(D) (where i≠j), the tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-1 zero of Math. 125 does not have check nodes corresponding to any parity check polynomial #0-1 through #(m−1)−1 for ^(∀)q.

C#6.3: In Math. 126, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, when a tree is drawn that is restricted to variable nodes corresponding to D^(α#q,i)X(D), D^(α#q,j)X(D) (where i≠j), the tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-2 zero of Math. 126 does not have check nodes corresponding to any parity check polynomial #0-2 through #(m−1)−2 for ^(∀)q.

C#6.4: In Math. 126, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, when a tree is drawn that is restricted to variable nodes corresponding to D^(#q,2,i)P₂(D), D^(β#q,2,j)P₂(D) (where i≠j), the tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-2 zero of Math. 126 does not have check nodes corresponding to any parity check polynomial #0-2 through #(m-2)−1 for ^(∀)q.

In circumstances such as those of C#6.1 and C#6.2, no check nodes corresponding to any parity check polynomial #0-1 through #(m−1)−1 exist for ^(∀)q.

Likewise, in circumstances such as those of C#6.3 and C#6.4, no check nodes corresponding to any parity check polynomial #0-2 through #(m−1)−2 exist for ^(∀)q. Accordingly, the result of Inference #1 for large time-varying periods are not obtained.

Therefore, in consideration of the above, the following design policy is applied in order to provide a high error-correction capability.

Design Policy Apply condition C#7.1 to the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, with respect to term X(D).

C#7.1: In Math. 125, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, when a tree is drawn that is restricted to variable nodes corresponding to D^(α#q,i)X(D), D^(α#q,j)X(D) (where i≠j), the tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-1 zero of Math. 125 has check nodes corresponding to all parity check polynomials #0-1 through #(m−1)−1 for ^(∀)q.

Similarly, apply condition #7.2 to the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, with respect to term P₁(D).

C#7.2: In Math. 125, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, when a tree is drawn that is restricted to variable nodes corresponding to D^(b#q,1,i)P₁(D), D^(b#q,1,j)P₁(D) (where i≠j), the tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-1 zero of Math. 125 has check nodes corresponding to all parity check polynomials #0-1 through #(m−1)−1 for ^(∀)q.

Also, apply condition #7.3 to the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, with respect to term X(D).

C#7.3: In Math. 126, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, when a tree is drawn that is restricted to variable nodes corresponding to D^(α#q,i)X(D), D^(α#q,j)X(D) (where i≠j), the tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-2 zero of Math. 126 has check nodes corresponding to all parity check polynomials #0-2 through #(m−1)−2 for ^(∀)q.

Similarly, apply condition #7.4 to the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, with respect to term P₂(D).

C#7.4: In Math. 126, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, when a tree is drawn that is restricted to variable nodes corresponding to D^(β#q,2,i) P₂(D), D^(β#q,2,j)P₂(D) (where i≠j), the tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-2 zero of Math. 126 has check nodes corresponding to all parity check polynomials #0-2 through #(m−1)−2 for ^(∀)q.

In the present design policy, C#7.1, C#7.2, C#7.3, and C#7.4 hold for v(i, j).

This enables the satisfaction of Inference #1.

The following describes a theorem pertaining to the design policy.

Theorem 2: In order to satisfy the design policy, in Math. 125, when a parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, also satisfies a_(#q,i) mod m≠a_(#q,j) mod m and b_(#q,1,i) mod m≠b_(#q,1,j) mod m, then in Math. 126, the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2 is also to satisfy α_(#q,i) mod m≠α_(#q,j) mod m and β_(#q,2,i) mod m≠β_(#q,2,j) mod m (where i≠j).

Proof: In Math. 125, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, when a tree is drawn that is restricted to variable nodes corresponding to D^(a#q,i)X(D), D^(α#q,j)X(D), and Theorem 2 is satisfied, the tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-1 zero of Math. 125 has check nodes corresponding to all parity check polynomials #0-1 through #(m−1)−1.

Similarly, in Math. 125, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, when a tree is drawn that is restricted to variable nodes corresponding to D^(b#q,1,i)P₁(D), D^(b#q,1,j)P₁(D), and Theorem 2 is satisfied, the tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-1 zero of Math. 125 has check nodes corresponding to all parity check polynomials #0-1 through #(m−1)−1.

Also, in Math. 126, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, when a tree is drawn that is restricted to variable nodes corresponding to D^(a#q,i)X(D), D^(a#q,j)X(D), and Theorem 2 is satisfied, the tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-2 zero of Math. 126 has check nodes corresponding to all parity check polynomials #0-2 through #(m−1)−2.

Similarly, in Math. 126, for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that is definable by Math. 118 and Math. 119 and satisfies C#2, when a tree is drawn that is restricted to variable nodes corresponding to D^(#q,2,i)P₂(D), D^(#q,2,j)P₂(D), and Theorem 2 is satisfied, the tree originating at the check node corresponding to the parity check polynomial that satisfies the #q-2 zero of Math. 126 has check nodes corresponding to all parity check polynomials #0-2 through #(m−1)−2.

Theorem 2 is therefore proven.

-   -   □(End of Proof)

Theorem 3: for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, no code satisfies the design policy when the time-varying period of m is even.

Proof: Theorem 3 can be proven by proving that, in Math. 125, the design policy cannot be satisfied for the parity check polynomial that satisfies zero for the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119. Accordingly, the following proof proceeds with respect to term P₁(D).

For the TV-m-LDPC-CC having a coding rate of R=⅓ that satisfies C#2 and is definable by Math. 118 and Math. 119, all circumstances are expressible as (b_(#q,1,i) mod m, b_(#q,1,2) mod m, b_(#q,1,3) mod m)=(M₁, M₂, M₃)=(o, o, o) ∪ (o, o, e) ∪ (o, e, e) ∪ (e, e, e). Here, o represents an odd number and e represents an even number. Accordingly, C#7.2 is not satisfied when (M1, M2, M3)=(o, o, o) ∪ (o, o, e) ∪ (o, e, e) ∪ (e, e, e).

When (M1, M2, M3)=(o, o, o), C#5.2 is satisfied for any value of the set (i, j) that satisfies i, j=1, 2, 3 (i≠j) in C#5.1.

When (M1, M₂, M₃)=(o, o, e), C#5.2 is satisfied when (i, j)=(1, 2) in C#5.2.

When (M1, M2, M₃)=(o, e, e), C#5.2 is satisfied when (i, j)=(2, 3) in C#5.2.

When (M1, M2, M3)=(e, e, e), C#5.2 is satisfied for any value of the set (i, j) that satisfies i,j=1, 2, 3 (i≠j) in C#5.2.

Accordingly, a set (i, j) that satisfies C#5.2 always exists when (M1, M2, M3)=(o, o, o) ∪ (o, o, e) ∪ (o, e, e) ∪ (e, e, e).

Accordingly, Theorem 3 is proven by Feature 5.

-   -   □(End of Proof)

Therefore, in order to satisfy the design policy, the time-varying period m is necessarily odd. Also, in order to satisfy the design policy, the following observations follow from Feature 3 and Feature 4:

-   -   the time-varying period m is prime;     -   The time-varying period m is an odd number; and m has a small         number of divisors.

Specifically, when the condition that time-varying period m is an odd number and that the number of divisors of m is small is taken into consideration, the following considerations emerge as examples of conditions under which codes of high error-correction capability are likely to be achieved:

(1) The time-varying period is α×β,

where, α and β are odd primes other than one.

(2) The time-varying period is α″,

where, α is an odd prime other than one, and n is an integer greater than or equal to two.

(3) The time-varying period is α×β×γ,

where, α, β, and γ are odd primes other than one. When the operation z mod m is performed (z being an integer greater than or equal to zero), m values can result. Accordingly, when m grows large, the number of values resulting from the z mod m operation increases. Accordingly, as m grows, the above-noted design policy becomes easier to satisfy. However, this does not mean that when the time-varying period m is even, no codes can be obtained that have high error-correction capability.

[Code Search Example]

Table 10 indicates examples of TV-m-LDPC-CC having a time-varying period of 23 and a coding rate of R=⅓ that satisfy the above-described design policy. Here, the maximum constraint length K_(max) is 600 for the code being sought.

TABLE 10 Index Codes K_(max) R Coefficients of Math. 118, Math. 119 #2 TV23 600 ⅓ (A_(N,#0)(D), B_(P1,#0)(D), E_(N,#0)(D), F_(P2,#0)(D)) = (D⁴⁴² + 1, D⁵⁰⁴ + D³⁵² + 1, D³³³ + 1, D⁵⁹² + D⁵⁸⁸ + 1) (A_(N,#1)(D), B_(P1,#1)(D), E_(N,#1)(D), F_(P2,#1)(D)) = (D¹²⁰ + 1, D⁵⁰⁴ + D¹⁶⁸ + 1, D⁵⁴⁰ + 1, D⁵¹⁹ + D³⁸⁵ + 1) (A_(N,#2)(D), B_(P1,#2)(D), E_(N,#2)(D), F_(P2,#2)(D)) = (D³⁵⁰ + 1, D⁵¹³ + D⁵⁰⁴ + 1, D²⁴¹ + 1, D⁵⁶⁵ + D²⁷⁰ + 1) (A_(N,#3)(D), B_(P1,#3)(D), E_(N,#3)(D), F_(P2,#3)(D)) = (D¹⁶⁶ + 1, D⁵⁷³ + D⁷⁶ + 1, D⁵⁷ + 1, D⁵⁹² + D⁵⁴² + 1) (A_(N,#4)(D), B_(P1,#4)(D), E_(N,#4)(D), F_(P2,#4)(D)) = (D⁵¹¹ + 1, D⁵⁹⁶ + D³⁹⁸ + 1, D¹¹ + 1, D⁵¹⁹ + D³⁶² + 1) (A_(N,#5)(D), B_(P1,#5)(D), E_(N,#5)(D), F_(P2,#5)(D)) = (D¹²⁰ + 1, D⁵⁰⁴ + D³⁰ + 1, D³⁵⁶ + 1, D⁵⁶⁵ + D³³⁹ + 1) (A_(N,#6)(D), B_(P1,#6)(D), E_(N,#6)(D), F_(P2,#6)(D)) = (D⁵⁸⁰ + 1, D⁵⁵⁹ + D⁵²⁷ + 1, D⁴⁹⁴ + 1, D⁵⁴² + D¹³² + 1) (A_(N,#7)(D), B_(P1,#7)(D), E_(N,#7)(D), F_(P2,#7)(D)) = (D⁴⁴² + 1, D⁵⁰⁴ + D⁴²¹ + 1, D¹⁷² + 1, D⁵⁴² + D³³⁹ + 1) (A_(N,#8)(D), B_(P1,#8)(D), E_(N,#8)(D), F_(P2,#8)(D)) = (D⁹⁷ + 1, D⁵⁰⁴ + D²³⁷ + 1, D⁴²⁵ + 1, D⁵⁶⁵ + D¹⁵⁵ + 1) (A_(N,#9)(D), B_(P1,#9)(D), E_(N,#9)(D), F_(P2,#9)(D)) = (D⁴¹⁹ + 1, D⁵⁹⁶ + D³⁵² + 1, D⁵⁷ + 1, D⁵⁴² + D⁶³ + 1) (A_(N,#10)(D), B_(P1,#10)(D), E_(N,#10)(D), F_(P2,#10)(D)) = (D⁴⁸⁸ + 1, D⁵²⁷ + D²⁸³ + 1, D¹⁴⁹ + 1, D⁵¹⁹ + D²⁷⁰ + 1) (A_(N,#11)(D), B_(P1,#11)(D), E_(N,#11)(D), F_(P2,#11)(D)) = (D³²⁷ + 1, D⁵²⁷ + D⁵³ + 1, D³³³ + 1, D⁵⁴² + D³¹⁶ + 1) (A_(N,#12)(D), B_(P1,#12)(D), E_(N,#12)(D), F_(P2,#12)(D)) = (D⁴¹⁹ + 1, D⁵²⁷ + D⁹⁹ + 1, D²¹⁸ + 1, D⁵¹⁹ + D¹⁰⁹ + 1) (A_(N,#13)(D), B_(P1,#13)(D), E_(N,#13)(D), F_(P2,#13)(D)) = (D²³⁵ + 1, D⁵²⁷ + D³²⁹ + 1, D⁴⁹⁴ + 1, D⁵¹⁹ + D¹⁵⁵ + 1) (A_(N,#14)(D), B_(P1,#14)(D), E_(N,#14)(D), F_(P2,#14)(D)) = (D⁹⁷ + 1, D⁵⁷³ + D⁵¹³ + 1, D⁸⁰ + 1, D⁵⁴² + D³¹⁶ + 1) (A_(N,#15)(D), B_(P1,#15)(D), E_(N,#15)(D), F_(P2,#15)(D)) = (D⁵⁸⁰ + 1, D⁵⁹⁶ + D⁵⁵⁹ + 1, D¹⁰³ + 1, D⁵⁶⁵ + D⁵²³ + 1) (A_(N,#16)(D), B_(P1,#16)(D), E_(N,#16)(D), F_(P2,#16)(D)) = (D⁵⁸⁰ + 1, D⁵⁰⁴ + D³⁰ + 1, D¹⁹⁵ + 1, D⁵²³ + D⁵¹⁹ + 1) (A_(N,#17)(D), B_(P1,#17)(D), E_(N,#17)(D), F_(P2,#17)(D)) = (D⁵⁸⁰ + 1, D⁵⁰⁴ + D⁴⁶⁷ + 1, D⁵⁶³ + 1, D⁵⁹² + D⁵¹⁹ + 1) (A_(N,#18)(D), B_(P1,#18)(D), E_(N,#18)(D), F_(P2,#18)(D)) = (D³²⁷ + 1, D⁵⁵⁰ + D³⁵² + 1, D³³³ + 1, D⁵⁶⁵ + D⁴⁰⁸ + 1) (A_(N,#19)(D), B_(P1,#19)(D), E_(N,#19)(D), F_(P2,#19)(D)) = (D⁵¹¹ + 1, D⁵²⁷ + D¹⁹¹ + 1, D³³³ + 1, D⁵⁸⁸ + D⁸⁶ + 1) (A_(N,#20)(D), B_(P1,#20)(D), E_(N,#20)(D), F_(P2,#20)(D)) = (D⁵⁸⁰ + 1, D⁵⁹⁶ + D²⁸³ + 1, D⁵⁸⁶ + 1, D⁵⁴⁶ + D⁵¹⁹ + 1) (A_(N,#21)(D), B_(P1,#21)(D), E_(N,#21)(D), F_(P2,#21)(D)) = (D⁴⁴² + 1, D⁵⁵⁰ + D²¹⁴ + 1, D¹¹ + 1, D⁵⁴² + D³⁶² + 1) (A_(N,#22)(D), B_(P1,#22)(D), E_(N,#22)(D), F_(P2,#22)(D)) = (D⁵¹ + 1, D⁵⁰⁴ + D⁴⁹⁰ + 1, D³⁴ + 1, D⁵¹⁹ + D⁴⁵⁴ + 1)

[Evaluation of BER Characteristics]

FIG. 72 indicates the relationship between the E_(b)/N_(o) (energy per bit-to-noise spectral density ratio) and the BER (BER characteristics) for the TV-m-LDPC-CC (#1 in Table 10) having a time-varying period of 23 and a coding rate of R=⅓ in an AWGN environment. For reference, the BER characteristics for the TV-m-LDPC-CC having a time-varying period of 23 and a coding rate of R=½ are also given. In the simulation, the modulation scheme is BPSK, the decoding scheme is BP decoding as indicated in Non-Patent Literature 19 and based on Normalized BP (1/v=0.8), and the number of iterations is I=50 (v is a normalized coefficient).

In FIG. 72, the BER characteristics of the TV-m-LDPC-CC having a time-varying period of 23 and a coding rate of R=⅓ are such that when BER>10⁻⁸, there is no error floor. This enables exceptional BER characteristics. According to the above, the above-discussed design policy is plausibly valid.

Embodiment 15

The present Embodiment describes a tail-biting scheme. Before describing specific configurations and operations of the Embodiment, an LDPC-CC based on parity check polynomials described in Non-Patent Literature 20 is described first, as an example.

A time-varying LDPC-CC having a coding rate of R=(n−1)/n based on parity check polynomials is described below. At time j, the information bits X₁, X₂, . . . , X_(n−1) and the parity bit P are respectively represented as X_(1,j), X_(2,j), . . . , X_(n−1,j) and P_(j). Thus, vector u_(j) at time j is expressed as u_(j)=(X_(1,j), X_(2,j), . . . , X_(n−1,j), P_(j)). Also, the encoded sequence is expressed as u=(u₀, u₁, . . . ,u₁, . . . )^(T). Given a delay operator D, the polynomial of the information bits X₁, X₂, . . . , X_(n−1) is expressed as X₁(D), X₂(D), . . . , X_(n−1)(D), and the polynomial of the parity bit P is expressed as P(D). Thus, a parity check polynomial satisfying zero is expressed by Math. 127.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 127} \right\rbrack} & \; \\ {{{\left( {D^{a_{1,1}} + D^{a_{1,2}} + \ldots + D^{a_{1,{r\; 1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{a_{2,1}} + D^{a_{2,2}} + \ldots + D^{a_{2,{r\; 2}}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{a_{{n - 1},1}} + D^{a_{{n - 1},2}} + \ldots + D^{a_{{n - 1},r_{n - 1}}} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{b_{1}} + D^{b_{2}} + \ldots + D^{b_{ɛ}} + 1} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 127} \right) \end{matrix}$

In Math. 127, a_(p,q) (p=1, 2, . . . , n−1; q=1, 2, . . . , r_(p)) and b_(s) (s=1, 2, . . . , ε) are natural numbers. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r, y≠z, a_(p,y)≠a_(p,z) holds. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , ε, y≠z, b_(y)≠b_(z) holds.

In order to create an LDPC-CC having a time-varying period of m and a coding rate of R=(n−1)/n, a parity check polynomial that satisfies zero based on Math. 127 is prepared. A parity check polynomial that satisfies zero for the ith (i=0, 1, . . . , m−1) is expressed as follows in Math. 128.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 128} \right\rbrack} & \; \\ {{{{A_{{X\; 1},i}(D)}{X_{1}(D)}} + {{A_{{X\; 2},i}(D)}{X_{2}(D)}} + \ldots + {{A_{{{X\; n} - 1},i}(D)}{X_{n - 1}(D)}} + {{B_{i}(D)}{P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 128} \right) \end{matrix}$

In Math. 128, the maximum degrees of D in A_(Xδ,i)(D) (δ=1, 2, . . . , n−1) and B_(i)(D) are, respectively, Γ_(Xδ,i) and Γ_(P,i). The maximum values of Γ_(Xδ,i) and Γ_(P,i) are Γ_(i). The maximum value of Γ_(i) (i=0, 1, . . . , m−1) is Γ. Taking the encoded sequence u into consideration and using Γ, vector h_(i) corresponding to the ith parity check polynomial is expressed as follows in Math. 129.

[Math. 129]

h _(i) =[h _(i,Γ) ,h _(i,Γ−1), . . . ,h_(i,1) ,h _(i,0])  (Math. 129)

In Math. 129, h_(i,v) (v=0, 1, . . . , Γ) is a 1×n vector expressed as [α_(i,v,X1), α_(i,v,X2), . . . , α_(i,v,Xn−1), β_(i,v)]. This is because, for the parity check polynomial of Math. 128, α_(i,v,Xw)D^(v)X_(w)(D) and β_(i,v)D^(v)P(D) (w=1, 2, . . . , n−1, and α_(i,v,Xw,βi,v)ε[0,1]). In such cases, the parity check polynomial that satisfies zero for Math. 128 has terms D⁰X₁(D), D⁰X₂(D), . . . , D⁰X_(n−1)(D) and D⁰P(D), thus satisfying Math. 130.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 130} \right\rbrack & \; \\ {h_{i,0} = \left\lbrack \underset{n}{\underset{}{1\mspace{14mu} \ldots \mspace{14mu} 1}} \right\rbrack} & \left( {{Math}.\mspace{14mu} 130} \right) \end{matrix}$

Using Math. 130, the check matrix of the LDPC-CC based on the parity check polynomial having a time-varying period of m and a coding rate of R=(n−1)/n is expressed as follows in Math. 131.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 131} \right\rbrack & \; \\ {H = \begin{bmatrix} \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \; & \; \\ \; & h_{0,\Gamma} & h_{0,{\Gamma - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,0} & \; & \; & \; & \; & \; & \; & \; \\ \; & \; & h_{1,\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,1} & h_{1,0} & \; & \; & \; & \; & \; & \; \\ \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; \\ \; & \; & \; & \; & h_{{m - 1},\Gamma} & h_{{m - 1},{\Gamma - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},0} & \; & \; & \; & \; \\ \; & \; & \; & \; & \; & h_{0,\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,1} & h_{0,0} & \; & \; & \; \\ \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; \\ \; & \; & \; & \; & \; & \; & \; & h_{{m - 1},\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},0} & \; \\ \; & \; & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 131} \right) \end{matrix}$

In Math. 131, Λ(k)=Λ(k+m) is satisfied for ^(∀)k. Here, Λ(k) corresponds to h_(i) at the kth row of the parity check matrix.

Although Math. 127 is handled, above, as a parity check polynomial serving as a base, no limitation to the format of Math. 127 is intended. For example, instead of Math. 127, a parity check polynomial satisfying zero for Math. 132 may be used.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 132} \right\rbrack} & \; \\ {{{\left( {D^{a_{1,1}} + D^{a_{1,2}} + \ldots + D^{a_{1,{r\; 1}}}} \right){X_{1}(D)}} + {\left( {D^{a_{2,1}} + D^{a_{2,2}} + \ldots + D^{a_{2,{r\; 2}}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{a_{{n - 1},1}} + D^{a_{{n - 1},2}} + \ldots + D^{a_{{n - 1},r_{n - 1}}}} \right){X_{n - 1}(D)}} + {\left( {D^{b_{1}} + D^{b_{2}} + \ldots + D^{b_{ɛ}}} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 132} \right) \end{matrix}$

In Math. 132, a_(p,q) (p=1, 2, . . . , n−1; q=1, 2, . . . , r_(p)) and b_(s) (s=1, 2, . . . , ε) are natural numbers. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p), y≠z, a_(p,y)≠a_(p,z) holds. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , ε, y≠z, b_(y)≠b_(z) holds.

The following describes a tail-biting scheme for the present Embodiment, using time-varying LDPC-CC based on the above-described parity check polynomial.

[Tail-Biting Scheme]

For the LDPC-CC based on the above-discussed parity check polynomials, the gth (g=0, 1, . . . , q−1) that satisfies zero for a time-varying period of q is expressed below as a parity check polynomial (see Math. 128) of Math. 133).

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 133} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 133} \right) \end{matrix}$

Let a_(#g,p,1) and a_(#g,p,2) be natural numbers, and let a_(#g,p,1)≠a_(#g,p,2) hold true. Furthermore, let b_(#g),I and b_(#g,2) be natural numbers, and let b_(#g,1)≠b_(#g,2) hold true (g=0, 1, 2, . . . , q−1; p=1, 2, . . . , n−1). For simplicity, the quantity of terms X₁(D), X₂(D), . . . X_(n−1)(D) and P(D) is three. Assuming a sub-matrix (vector) in Math. 133 to be H_(g), a gth sub-matrix can be represented as Math. 134, shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 134} \right\rbrack & \; \\ {H_{g} = \left\{ {H_{g}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{Math}.\mspace{14mu} 134} \right) \end{matrix}$

In Math. 134, the n consecutive ones correspond to the terms X₁(D), X₂(D), X_(n−1)(D) and P(D) in each form of Math. 133.

Here, parity check matrix H can be represented as shown in FIG. 73. As shown in FIG. 73, a configuration is employed in which a sub-matrix is shifted n columns to the right between an ith row and (i+1)th row in parity check matrix H

(see FIG. 73). Thus, the data at time k for information X₁, X₂, . . . , X_(n−1) and parity P are respectively given as X_(1,k), X_(2,k), . . . , X_(n−1,k), and P_(k). When transmission vector u is given as u=(X_(1,0), X_(2,0), . . . , X_(n−1,0), P₀, X_(1,1), X_(2,1), . . . , X_(n−1,1), P₁, . . . , X_(1,k), X_(2,k), . . . , X_(n−1,k), P_(k), . . . )^(T), Hu=0 holds true.

In Non-Patent Literature 12, a check matrix is described for when tail-biting is employed. The parity check matrix is given as follows.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 135} \right\rbrack & \; \\ {H^{T} = \begin{bmatrix} {H_{0}^{T}(0)} & {H_{1}^{T}(1)} & \ldots & {H_{Ms}^{T}\left( M_{s} \right)} & 0 & \; & \ldots & \; & 0 \\ 0 & {H_{0}^{T}(1)} & \ldots & {H_{{Ms} - 1}^{T}\left( M_{s} \right)} & {H_{Ms}^{T}\left( {M_{s} + 1} \right)} & 0 & \ldots & \; & 0 \\ \; & \ddots & \; & \; & \ddots & \; & \; & \ddots & \; \\ {H_{Ms}^{T}(N)} & 0 & \; & \ldots & \; & \; & \; & {H_{{Ms} - 2}^{T}\left( {N - 2} \right)} & {H_{{Ms} - 1}^{T}\left( {N - 1} \right)} \\ {H_{{Ms} - 1}^{T}(N)} & {H_{Ms}^{T}\left( {N + 1} \right)} & 0 & \; & \; & \; & \; & {H_{{Ms} - 3}^{T}\left( {N - 2} \right)} & {H_{{Ms} - 2}^{T}\left( {N - 1} \right)} \\ \vdots & \; & \; & \; & \ldots & \; & \; & \vdots & \vdots \\ {H_{1}^{T}(N)} & {H_{2}^{T}\left( {N + 1} \right)} & \ldots & 0 & \; & \ldots & \; & 0 & {H_{0}^{T}\left( {N - 1} \right)} \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 135} \right) \end{matrix}$

In Math. 135, H is the check matrix and H^(T) is the syndrome former. Also, H^(T) _(i)(t) (i=0, 1, . . . , M_(s)) is a c×(c−b) sub-matrix, and M, is the memory size.

FIG. 73 and Math. 135 show that, for the LDPC-CC having a coding rate of (n−1)/n and a time-varying period of q that is based on the parity check polynomial, the parity check matrix H required for decoding that obtains greater error-correction capability strongly prefers the following conditions.

<Condition #15-1>

The number of rows in the parity check matrix is a multiple of q.

-   -   Accordingly, the number of columns in the parity check matrix is         a multiple of n×q. Here, the (for example) log-likelihood ratio         needed upon decoding is the log-likelihood ratio of the bit         portion that is a multiple of n×q.

Here, the parity check polynomial that satisfies zero for the LDPC-CC having a coding rate of (n−1)/n and a time-varying period of q required by Condition #15-1 is not limited to that of Math. 133, but may also be the time-varying LDPC-CC based on Math. 127 or Math. 132.

Incidentally, for the parity check polynomial, when there is only one parity term P(D), Math. 135 is expressible as Math. 136.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 136} \right\rbrack & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 136} \right) \end{matrix}$

Such a time-varying period LDPC-CC is a type of feed-forward convolutional code. Thus, a coding scheme given by Non-Patent Literature 10 or Non-Patent Literature 11 can be applied as the coding scheme used when tail-biting is used. The procedure is as shown below.

<Procedure 15-1>

For example, the time-varying LDPC-CC defined by Math. 136 has a term P(D) expressed as follows.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 137} \right\rbrack & \; \\ {{P(D)} = {{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + 1} \right){X_{n - 1}(D)}}}} & \left( {{Math}.\mspace{14mu} 137} \right) \end{matrix}$

Then, Math. 137 is represented as follows.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 138} \right\rbrack & \; \\ {{P\lbrack i\rbrack} = {{X_{1}\lbrack i\rbrack} \oplus {X_{1}\left\lfloor {i - a_{{\# g},1,1}} \right\rfloor} \oplus {X_{1}\left\lfloor {i - a_{{\# g},1,2}} \right\rfloor} \oplus {X_{2}\lbrack i\rbrack} \oplus {X_{2}\left\lfloor {i - a_{{\# g},2,1}} \right\rfloor} \oplus {X_{2}\left\lfloor {i - a_{{\# g},2,2}} \right\rfloor} \oplus \ldots \oplus {X_{n - 1}\lbrack i\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},1}} \right\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},2}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 138} \right) \end{matrix}$

where G represents the exclusive OR operator.

Accordingly, at time i, when (i-1) %q=k (% represents the modulo operator), parity is calculated in Math. 137 and Math. 138 at time i when g=k. The registers are initialized to values of zero. That is, using Math. 138, when (i-1) %q=k at time i (i=1, 2, . . . ), then in Math. 138, the parity at time i is calculated for g=k. In Math. 138, for terms X₁[z], X₂[z], . . . , X_(n−1)[z] and P[z], any term for which z is less than one is taken as a zero and Math. 138 is used for coding. Calculations proceed up to the final parity bit. The state of each register of the encoder at this time is stored.

<Procedure 2>

Coding is performed a second time from time i=1 from the state of the registers stored during Procedure 15-1 (that is, for terms X₁[z], X₂[z], . . . , X_(n−1)[z], and P[z] of Math. 138, the values obtained using Procedure 15-1 are used where z is less than one) and parity is calculated.

The parity bit and information bits obtained at this time constitute an encoded sequence when tail-biting is performed.

However, upon comparison of feed-forward LDPC-CCs and feedback LDPC-CCs under conditions of having the same coding rate and substantially similar constraint lengths, the feedback LDPC-CCs have a stronger tendency to exhibit strong error-correction capability but present difficulties in calculating the encoded sequence (i.e., calculating the parity). The following proposes a new tail-biting scheme as a solution to this problem, enabling simple encoded sequence (parity) calculation.

First, a parity check matrix for performing tail-biting with an LDPC-CC based on a parity check polynomial is described.

For example, for the LDPC-CC based on the parity check polynomial having a time-varying period of q and a coding rate of (n−1)/n as defined by Math. 133, the information terms X₁, X₂, . . . , X_(n−1) and the parity term P are represented at time i as X_(1,i), X_(2,i), . . . , X_(n−1,i), and P_(i). Then, in order to satisfy Condition #15-1, tail-biting is performed such that i=1, 2, 3, . . . , q, . . . , q×N−q+1, q×N−q+2, q×N−q+3, . . . , q×N.

Here, N is a natural number, the transmission sequence u is u=(X_(1,1), X_(2,1), . . . , X_(n−1,1), P₁, X_(1,2), X_(2,2), . . . , X_(n−1,2), P₂, . . . , X_(1,k), X_(2,k), . . . , X_(n−1,k), P_(k), . . . , X_(1,q×N), X_(2,q×N), . . . , X_(n−1,q×N), P_(q×N))^(T), and Hu=0 all hold true

The configuration of the parity check matrix is described using FIGS. 74 and 75.

Assuming a sub-matrix (vector) in Math. 133 to be Hg, a gth sub-matrix can be represented as Math. 139, shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 139} \right\rbrack & \; \\ {H_{g} = \left\{ {H_{g}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{Math}.\mspace{14mu} 139} \right) \end{matrix}$

In Math. 139, the n consecutive ones correspond to the terms X₁(D), X₂(D), X_(n−1)(D), and P(D) in each form of Math. 139.

Among the parity check matrix corresponding to the transmission sequence u defined above, the parity check matrix in the vicinity of time q×N are represented by FIG. 74. As shown in FIG. 74, a configuration is employed in which a sub-matrix is shifted n columns to the right between an ith row and (i+1)th row in parity check matrix H (see FIG. 74).

Also, in FIG. 74, the q×Nth (i.e., the last) row of the parity check matrix has reference sign 7401, and corresponds to the (q−1)th parity check polynomial that satisfies zero in order to satisfy Condition #15-1. The q×N−1th row of the parity check matrix has reference sign 7402, and corresponds to the (q−2)th parity check polynomial that satisfies zero in order to satisfy Condition #15-1. Reference sign 7403 represents a column group corresponding to time q×N. Column group 7403 is arranged in the order X_(1,q×N), X_(2,q×N), . . . X_(n−1,q×N), P_(q×N). Reference sign 7404 represents a column group corresponding to time q×N−1. Column group 7404 is arranged in the order X_(1,q×N−1), X_(2,q×N−1), . . . X_(n−1,q×N−1), P_(q×N−1).

Next, by reordering the transmission sequence, the parity check matrix corresponding to u=( . . . , X_(1,q×N−i), X_(2,q×N−1), . . . , X_(n−1,q×N−1), P_(q×N−1), X_(1,q×N), X_(2,q×N), . . . , X_(n−1,q×N), P_(q×N), X_(1,1), X_(2,1), . . . , X_(n−1), P₁, X_(1,2), X_(2,2), . . . , X_(n−1,2), P₂, . . . )^(T) in the vicinity of times q×N−1, q×N, 1, 2 is the parity check matrix shown in FIG. 75. Here, the parity check matrix portion shown in FIG. 75 is a characteristic portion when tail-biting is performed. The configuration thereof is identical to the configuration shown in Math. 135. As shown in FIG. 75, a configuration is employed in which a sub-matrix is shifted n columns to the right between an ith row and (i+1)th row in parity check matrix H (see FIG. 75).

Also, in FIG. 75, when expressed as a parity check matrix like that of FIG. 74, reference sign 7505 corresponds to the (q×N×n)th column and, when similarly expressed as a parity check matrix like that of FIG. 74, reference sign 7506 corresponds to the first column.

Reference sign 7507 represents a column group corresponding to time q×N−1. Column group 7507 is arranged in the order X_(1,q×N−1), X_(2,q×N−1), . . . , X_(n−1,q×N−1), P_(q×N−1). Reference sign 7508 represents a column group corresponding to time q×N. Column group 7508 is arranged in the order X_(1,q×N), X_(2,q×N), . . . X_(n−1,q×N), Pq×N. Reference sign 7509 represents a column group corresponding to time 1. Column group 7509 is arranged in the order X_(1,1), X_(2,1), . . . , X_(n−1,1), P₁. Reference sign 7510 represents a column group corresponding to time 2. Column group 7510 is arranged in the order X_(1,2), X_(2,2), . . . , X_(n−1,2), P₂.

When expressed as a parity check matrix like that of FIG. 74, reference sign 7511 corresponds to the (q×N)th row, and when similarly expressed as a parity check matrix like that of FIG. 74, reference sign 7512 corresponds to the first row.

In FIG. 75, the characteristic portion of the parity check matrix on which tail-biting is performed is the portion left of reference sign 7513 and below reference sign 7514 (See also Math. 135).

When expressed as a parity check matrix like that of FIG. 74, and when Condition #15-1 is satisfied, the rows begin with a row corresponding to a parity check polynomial that satisfies a zeroth zero, and the rows end with a parity check polynomial that satisfies a (q−1)th zero. This point is critical for obtaining better error-correction capability. In practice, the time-varying LDPC-CC is designed such that the code thereof produces a small number of cycles of length each being of a short length on a Tanner graph. As the description of FIG. 75 makes clear, in order to ensure a small number of cycles of length each being of a short length on a Tanner graph when tail-biting is performed, maintaining conditions like those of FIG. 75, i.e., maintaining Condition #15-1, is critical.

However, in a communication system, when tail-biting is performed, circumstances occasionally arise in which some shenanigans are required in order to satisfy Condition #15-1 for the block length (or information length) requested by the system. This point is explained by way of example.

FIG. 76 is an overall diagram of the communication system. The communication system is configure to include a transmitting device 7600 and a receiving device 7610.

The transmitting device 7600 is in turn configured to include an encoder 7601 and a modulation section 7602. The encoder 7601 receives information as input, performs encoding, and generates and outputs a transmission sequence. Then, the modulation section 7602 receives the transmission sequence as input, performs predetermined processing such as mapping, quadrature modulation, frequency conversion, and amplification, and outputs a transmission signal. The transmission signal arrives at the receiving device 7610 via a communication medium (radio, power line, light or the like).

The receiving device 7610 is configured to include a receiving section 7611, a log-likelihood ratio generation section 7612, and a decoder 7613. The receiving section 7611 receives a received signal as input, performs processing such as amplification, frequency conversion, quadrature demodulation, channel estimation, and demapping, and outputs a baseband signal and a channel estimation signal. The log-likelihood ratio generation section 7612 receives the baseband signal and the channel estimation signal as input, generates a log-likelihood ratio in bit units, and outputs a log-likelihood ratio signal. The decoder 7613 receives the log-likelihood ratio signal as input, performs iterative decoding using, specifically, BP (Belief Propagation) decoding (see Non-Patent Literature 3 to Non-Patent Literature 6), and outputs an estimated transmission sequence or (and) an estimated information sequence.

For example, consider an LDPC-CC having a coding rate of ½ and a time-varying period of 12 as an example. Assuming that tail-biting is performed at this time, the set information length (coding length) is designated 16384. The information bits are designated X_(1,1), X_(1,2), X_(1,3), . . . , X_(1,16384). If parity bits are determined without any shenanigans, P₁, P₂, P₃, . . . , P₁₆₃₈₄ are determined. However, despite a parity check matrix being created for transmission sequence u=(X_(1,1), P₁, X_(1,2), P₂, . . . , X_(1,16384), P₁₆₃₈₄), Condition #15-1 is not satisfied. Therefore, X_(1,16385), X_(1,16386), X_(1,16387), and X_(1,16388) may be added to the transmission sequence so as to determine P₁₆₃₈₅, P₁₆₃₈₆, P₁₆₃₈₇, and P₁₆₃₈₈. Here, the encoder (transmitting device) is set such that, for example, X_(1,16385)=0, X_(1,16386)=0, X_(1,16387)=0, and X_(1,16388)=0, then performs decoding to obtain P₁₆₃₈₅, P₁₆₃₈₆, P₁₆₃₈₇, and P₁₆₃₈₈. However, for the encoder (transmitting device) and the decoder (receiving device), when mutually agreed-upon settings are in place such that X_(1,16385)=0, X_(1,16386)=0, X_(1,16387)=0, and X_(1,16388)=0, there is no need to transmit X_(1,16385), X_(1,16386), X_(1,16387), and X_(1,16388).

Accordingly, the encoder takes the information sequence X=(X_(1,1), X_(1,2), X_(1,3), . . . , X_(1,16384), X_(1,16385), X_(1,16386), X_(1,16387), X_(1,16388))=(X_(1,1), X_(1,2), X_(1,3), . . . , X_(1,16384), 0, 0, 0, 0) as input, and obtains the sequence (X_(1,1), P₁, X_(1,2), P₂, . . . , X_(1,16384), P₁₆₃₈₄, X_(1,16385), P₁₆₃₈₅, X_(1,16386), P₁₆₃₈₆, X_(1,16387), P₁₆₃₈₇, X_(1,16388), P₁₆₃₈₈)=(X_(1,1), P₁, X_(1,2), P₂, . . . , X_(1,16384), P₁₆₃₈₄, 0, P₁₆₃₈₅, 0, P₁₆₃₈₆, 0, P₁₆₃₈₇, 0, P₁₆₃₈₈) therefrom. Then, the encoder (transmitting device) and the decoder (receiving device) delete the known zeroes, such that the transmitting device transmits the transmission sequence as (X_(1,1), P₁, X_(1,2), P₂, . . . , X_(1,16384), P₁₆₃₈₄, P₁₆₃₈₅, P₁₆₃₈₆, P₁₆₃₈₇, P₁₆₃₈₈).

The receiving device 7610 obtains, for example, the log-likelihood ratios for each transmission sequence of LLR(X_(1,1)), LLR(P₁), LLR(X_(1,2)), LLR(P₂), . . . , LLR(X_(1,16384)), LLR(P₁₆₃₈₄), LLR(P₁₆₃₈₅), LLR(P₁₆₃₈₆), LLR(P₁₆₃₈₇), LLR(P₁₆₃₈₈).

Then, the log-likelihood ratios LLR(X_(1,16385))=LLR(0), LLR(X_(1,16386))=LLR(0), LLR(X_(1,16387))=LLR(0), LLR(X_(1,16388))=LLR(0) of the zero-value termsX_(1,16385), X_(1,16386), X_(1,16387), and X_(1,16388) not transmitted by the transmitting device 7600 are generated, obtaining LLR(X_(1,1)), LLR(P₁), LLR(X_(1,2)), LLR(P₂), LLR(X_(1,16384)), LLR(P₁₆₃₈₄), LLR(X_(1,16385))=LLR(0), LLR(P₁₆₃₈₅), LLR(X_(1,16386))=LLR(0), LLR(P₁₆₃₈₆), LLR(X_(1,16387))=LLR(0), LLR(P₁₆₃₈₇), LLR(X_(1,16388))=LLR(0), and LLR(P₁₆₃₈₈). As such, the estimated transmission sequence and the estimated information sequence are obtainable by using the 16388×32776 parity check matrix of the LDPC-CC having a time-varying period of 12 and a coding rate of ½ and performing decoding using belief propagation, such as BP decoding described in Non-Patent Literature 3 to Non-Patent Literature 6, min-sum decoding that approximates BP decoding, offset BP decoding, Normalized BP decoding, or shuffled BP decoding.

As the example makes clear, for an LDPC-CC having a time-varying period of q and a coding rate of(n−1)/n and for which tail-biting is performed, when the receiving device performs decoding, the decoding proceeds with a parity check matrix that satisfies Condition #15-1. Accordingly, the decoder holds a parity check matrix in which (rows)×(columns)=(q×M)×(q×n×M) (where M is a natural number).

The corresponding encoder uses a number of information bits needed for coding that corresponds to q×(n−1)×M. Accordingly, q×M bits of parity are computed. In contrast, when the number of information bits input to the encoder is less than q×(n−1)×M, the encoder inserts known bits (for example, zeroes (or ones)) into inter-device transmissions (between the encoder and the decoder) such that the total number of information bits is q×(n−1)×M. Thus, q×M bits of parity are computed. Here, the transmitting device transmits the parity bits computed from the information bits with the inserted known bits deleted. (However, although the known bits are normally transmitted with q×(n−1)×M bits of information and q×M bits of parity, the presence of known bits may lead to a decrease in transmission speeds).

The following describes the configuration of an example of a system using the encoding method and the decoding method described in the above Embodiment, as an example of corresponding a transmission method and reception method.

FIG. 77 is a system configuration diagram including a device executing a transmission method and a reception method applying the coding and decoding methods described in the above Embodiment. As shown in FIG. 77, the transmission method and the reception method are implemented by a digital broadcasting system 7700 that includes a broadcasting station 7701 and various types of receivers, such as a television 7711, a DVD recorder 7712, a set-top box (hereinafter STB) 7713, a computer 7720, an on-board television 7741, and a mobile phone 7700. Specifically, the broadcasting station 7701 transmits multiplexed data, in which video data, audio data, and so on have been multiplexed, in a predetermined transmission band using the transmission method described in the above Embodiment.

The signal transmitted by the broadcasting station 7701 is received by an antenna (e.g., an antenna 7740) equipped on each of the receivers or installed externally and connected to the receivers. Each of the receivers demodulates the signal received by the antenna to acquire the multiplexed data. Accordingly, the digital broadcasting system 7700 is capable of supplying the effect described in the above Embodiment of the present invention.

Here, the video data included in the multiplexed data are, for example, encoded using a video coding method conforming to a standard such as MPEG-2 (Moving Picture Experts Group), MPEG4-AVC (Advanced Video Coding), VC-1, or similar. Similarly, the audio data included in the multiplexed data are, for example, encoded using an audio coding method such as Dolby AC-3 (Audio Coding), Dolby Digital Plus, MLP (Meridian Lossless Packing), DTS (Digital Theatre Systems), DTS-HD, Linear PCM (Pulse Coding Modulation), or similar.

FIG. 78 illustrates an example of the configuration of the receiver 7800. As shown in FIG. 78, as an example configuration for a receiver 7800 a possible configuration method involves a single LSI (or chipset) forming a modem unit, and a separate single LSI (or chipset) forming a codec unit. The receiver 7800 shown in FIG. 78 corresponds to the configuration of the television 7711, the DVD recorder 7712, the set-top box 7713, the computer 7720, the on-board television 7741, and the mobile phone 7730 shown in FIG. 77. The receiver 7800 includes a tuner 7801 converting the high-frequency signal received by the antenna 7860 into a baseband signal, and a demodulator 7802 acquiring the multiplexed data by demodulating the baseband signal so converted. The reception method described in the above Embodiment is implemented by the demodulator 7802, which is thus able to provide the results described in the above Embodiment of the present invention.

Also, the receiver 7800 includes a stream I/O section 7803 separating the multiplexed data obtained by the demodulator 7802 into video data and audio data, a signal processing section 7804 decoding the video data into a video signal using a video decoding method corresponding to the video data so separated, and decoding the audio data into an audio signal using an audio decoding method corresponding to the audio data so separated, an audio output section 7806 outputting the decoded audio signal to speakers or the like, and a video display section 7807 displaying the decoded video signal on a display or the like.

For example, the user uses a remote control 7850 to transmit information on a selected channel (or a selected (television) program) to an operation input section 7810. Then, the receiver 7800 demodulates a signal corresponding to the selected channel using the received signal received by the antenna 7860, and performs error correction decoding and so on to obtain received data. Here, the receiver 7800 obtains control symbol information, which includes information on the transmission method included in the signal corresponding to the selected channel, and is thus able to correctly set the methods for the receiving operation, demodulating operation, error correction decoding, and so on (when a plurality of error correction decoding methods are prepared as described in the present document (e.g., a plurality of different codes are prepared, or a plurality of codes having different coding rates are prepared), the error correction decoding method corresponding to the error correction codes set from among a plurality of error correction codes are used. As such, the data included in the data symbols transmitted by the broadcasting station (base station) are made receivable. The above describes an example where the user selects a channel using the remote control 7850. However, the above-described operations are also possible using a selection key installed on the receiver 7800 for channel selection.

According to the above configuration, the user is able to view a program received by the receiver 7800 using the reception method described in the above Embodiment.

Also, the receiver 7800 of the present Embodiment includes a drive 7808 recording the data obtained by processing the data included in the multiplexed data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding (i.e., performing decoding using a decoding method corresponding to the error correction decoding described in the present document) (in some circumstances, error correction decoding may not be performed on the signal obtained through the demodulation by the demodulator 7802; the receiver 7800 may apply other signal processing after the error correction decoding. These variations also apply to similarly-worded portions, below), or data corresponding thereto (e.g., data obtained by compressing such data), as well as data obtained by processing video and audio onto a magnetic disc, an optical disc, a non-volatile semiconductor memory, or other recording medium. Here, the optical disc is a recording medium from which information is read and to which information is recorded using a laser, such as a DVD (Digital Versatile Disc) or BD (Blu-ray Disc). The magnetic disc is a recording medium where information is stored by magnetising a magnetic body using a magnetic flux, such as a floppy disc or hard disc. The non-volatile semi-conductor memory is a recording medium incorporating a semiconductor, such as Flash memory or ferroelectric random access memory, for example an SD card using flash memory or a Flash SSD (Solid State Drive). The examples of recording media here given are simply examples, and no limitation is intended regarding the use of recording media other than those listed for recording.

According to the above configuration, the user is able to view a program that the receiver 7800 has received through the recording method given in the above Embodiment, stored, and read as data at a freely selected time after the time of broadcast.

Although the above explanation describes the receiver 7800 as recording, onto the drive 7808, the multiplexed data obtained by having the demodulator 7802 perform demodulation and then performing error correction decoding (performing decoding with a decoding method corresponding to the error correction decoding described in the present document), a portion of the data included in the multiplexed data may also be extracted for recording. For example, when data broadcasting service content or similar data other than the video data and the audio data are included in the multiplexed data that the demodulator 7802 demodulates and to which error correction decoding is applied, the drive 7808 may extract the video data and the audio data from the multiplexed data demodulated by the demodulator 7802, and multiplex these data into new multiplexed data for recording. Also, the drive 7808 may multiplex only one of the audio data and the video data included in the multiplexed data obtained through demodulation by the demodulator 7802 and performing error correction decoding into new multiplexed data for recording. The drive 7808 may also record the aforementioned data broadcasting service content included in the multiplexed data.

Furthermore, when the television, the recording device (e.g., DVD recorder, Blu-ray recorder, HDD recorder, SD card, or similar), or the mobile phone is equipped with the receiver described in the present invention, the multiplexed data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding (i.e., performing decoding using a decoding method corresponding to the error correction decoding described in the present document) may include data for correcting software bugs using the television or the recording device, or data for correcting software bugs so as to prevent leakage of personal information or recorded data. These data may be installed so as to correct software bugs in the television or the recording device. As such, when data for correcting software bugs in the receiver 7800 are included in the data, the receiver 7800 bugs are corrected thereby. Accordingly, the television, recording device, or mobile phone equipped with the receiver 7800 is able to operate in a more stablefashion.

The process of extracting a portion of data from among the data included in the multiplexed data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding (i.e., performing decoding using a decoding method corresponding to the error correction decoding described in the present document) is performed, for example, by the stream I/O section 7803. Specifically, the stream I/O section 7803 separates the multiplexed data demodulated by the demodulator 7802 into video data, audio data, data broadcasting service content, and other types of data in accordance with instructions from a control unit in a non-diagrammed CPU or similar, and multiplexes only the data designated among the separated data to generate new multiplexed data. The question of which data to extract from among the separated data may be, for example, decided by the user, or decided in advance for each type of recording medium.

According to the above configuration, the receiver 7800 is able to record only those data extracted as needed for viewing the recorded program, and is able to reduce the size of the recorded data.

Also, although the above explanation describes the drive 7808 as recording the multiplexed data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding (i.e., performing decoding using a decoding method corresponding to the error correction decoding described in the present document), the video data included in the data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding may be converted into video data encoded with a video coding method different from the video coding method originally applied to the video data, so as to decrease the size of the data or reduce the bit rate thereof, and the converted video data may be multiplexed into new multiplexed data for recording. Here, the video coding method applied to the original video data and the video coding method applied to the converted video data may conform to different standards, or may conform to the same standard but differ only in terms of parameters. Similarly, the drive 7808 may also convert the audio data included in the data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding into audio data encoded with an audio coding method different from the audio coding method originally applied to the audio data, so as to decrease the size of the data or reduce the bit rate thereof, and the converted audio data may be multiplexed into new multiplexed data for recording

The process of converting the audio data and the video data from the multiplexed data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding (i.e., performing decoding using a decoding method corresponding to the error correction decoding described in the present document) into the audio data and the video data having decreased sizes and reduced bitrates is performed by the stream I/O section 7803 and the signal processing section 7804, for example. Specifically, the stream I/O section 7803 separates the data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding into video data, audio data, data broadcasting service content, and so on in accordance with instructions from a control unit in a CPU or similar. The signal processing section 7804 performs a process of converting the video data so separated into video data encoded with a video coding method different from the video coding method originally applied to the video data, and a process of converting the audio data so separated into audio data encoded with an audio coding method different from the audio coding method originally applied to the audio data, all in accordance with instructions from the control unit. The stream I/O section 7803 multiplexes the converted video data and the converted audio data to generate new multiplexed data, in accordance with the instructions from the control unit. In response to the instructions by the control unit, the signal processing section 7804 may perform the conversion process on only one of or on both of the video data and the audio data. Also, the size or bitrate of the converted audio data and the converted video data may be determined by the user, or may be determined in advance according to the type of recording medium involved.

According to the above configuration, the receiver 7800 is able to convert and record at a size recordable onto the recording medium, or at a size or bitrate of video data and audio data matching the speed at which the drive 7808 is able to record or read data. Accordingly, the drive is able to record the program when the data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding have a size recordable onto the recording medium, or are smaller than the multiplexed data, or when the size or bitrate of the data demodulated by the demodulator 7802 are lower than the speed at which the drive 7808 is able to record or read data. Thus, the user is able to view a program that has been stored and read as data at a freely selected time after the time of broadcast.

The receiver 7800 further includes a stream interface 7809 transmitting the multiplexed data demodulated by the demodulator 7802 to an external device through a transmission medium 7830. Examples of the stream interface 7809 include Wi-Fi ™ (IEEE802.11a, IEEE802.11b, IEEE802.11g, IEEE802.11n, and so on), WiGiG, WirelessHD, Bluetooth, Zigbee, and other wireless communication methods conforming to wireless communication standards, used by a wireless communication device to transmit the demodulated multiplexed data to an external device through a wireless medium (corresponding to the transmission medium 7830). Further, the stream interface 7809 may be Ethernet™, USB (Universal Serial Bus, PLC (Power Line Communication), HDMI (High-Definition Multimedia Interface), or some other form of wired communication method conforming to wired communication standards, used by a wired communication device to transmit the demodulated multiplexed data to an external device connected to the stream interface 7809 through a wired channel (corresponding to the transmission medium 7830).

According to the above configuration, the user is able to use the external device with the multiplexed data received by the receiver 7800 using the reception method described in the above Embodiment. The aforementioned use of the multiplexed data includes the user viewing the multiplexed data in real time using the external device, recording the multiplexed data with a drive provided on the external device, transferring the multiplexed data from the external device to another external device, and so on.

Although the above explanation describes the receiver 7800 as outputting, to the stream interface 7809, the multiplexed data obtained by having the demodulator 7802 perform demodulation and then performing error correction decoding (performing decoding with a decoding method corresponding to the error correction decoding described in the present document), a portion of the data included in the multiplexed data may also be extracted for recording. For example, when the multiplexed data obtained by having the demodulator 7802 perform demodulation and then performing error correction decoding include data broadcasting service content or other data other than the audio data and the video data, the stream interface 7809 may extract the video data and the audio data from the multiplexed data demodulated by the demodulator 7802, and multiplex these data into new multiplexed data for output. The stream interface 7809 may also multiplex only one of the audio data and the video data included in the multiplexed data obtained through demodulation by the demodulator 7802 and performing error correction decoding into new multiplexed data for output.

The process of extracting a portion of data from among the data included in the multiplexed data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding (i.e., performing decoding using a decoding method corresponding to the error correction decoding described in the present document) is performed, for example, by the stream I/O section 7803. Specifically, the stream I/O section 7803 separates the multiplexed data demodulated by the demodulator 7802 into video data, audio data, data broadcasting service content, and other types of data in accordance with instructions from a control unit in a non-diagrammed CPU or similar, and multiplexes only the data designated among the separated data to generate new multiplexed data. The question of which data to extract from among the separated data may be, for example, decided by the user, or decided in advance for each type of stream interface 7809.

According to the above configuration, the receiver 7800 is able to extract only those data required by the external device for output, and thus eliminate communication bands consumed by output of the multiplexed data.

Also, although the above explanation describes the stream interface 7809 as recording the multiplexed data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding (i.e., performing decoding using a decoding method corresponding to the error correction decoding described in the present document), the video data included in the data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding may be converted into video data encoded with a video coding method different from the video coding method originally applied to the video data, so as to decrease the size of the data or reduce the bit rate thereof, and the converted video data may be multiplexed into new multiplexed data for output. Here, the video coding method applied to the original video data and the video coding method applied to the converted video data may conform to different standards, or may conform to the same standard but differ only in terms of parameters. Similarly, the stream interface 7809 may also convert the audio data included in the data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding into audio data encoded with an audio coding method different from the audio coding method originally applied to the audio data, so as to decrease the size of the data or reduce the bit rate thereof, and the converted audio data may be multiplexed into new multiplexed data for output.

The process of converting the audio data and the video data from the multiplexed data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding (i.e., performing decoding using a decoding method corresponding to the error correction decoding described in the present document) into the audio data and the video data having decreased sizes and reduced bitrates is performed by the stream I/O section 7803 and the signal processing section 7804, for example. Specifically, the stream I/O section 7803 separates the data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding into video data, audio data, data broadcasting service content, and so on in accordance with instructions from the control unit.

The signal processing section 7804 performs a process of converting the video data so separated into video data encoded with a video coding method different from the video coding method originally applied to the video data, and a process of converting the audio data so separated into audio data encoded with an audio coding method different from the audio coding method originally applied to the audio data, all in accordance with instructions from the control unit. The stream I/O section 7803 multiplexes the converted video data and the converted audio data to generate new multiplexed data, in accordance with the instructions from the control unit. In response to the instructions by the control unit, the signal processing section 7804 may perform the conversion process on only one of or on both of the video data and the audio data. Also, the size or bitrate of the converted audio data and the converted video data may be determined by the user, or may be determined in advance according to the type of stream interface 7809 involved.

According to the above configuration, the receiver 7800 is able to convert the bitrate of the video data and the audio data for output according to the speed of communication with the external device. Accordingly, the multiplexed data can be output from the stream interface to the external device when the speed of communication with the external device is lower than the bitrate of the multiplexed data obtained by having the demodulator 7802 perform demodulation and then performing error correction decoding (performing decoding with a decoding method corresponding to the error correction decoding described in the present document). As such, the user is able to use the new multiplexed data with another communication device.

The receiver 7800 also includes an audiovisual interface 7811 that outputs the video signal and the audio signal decoded by the signal processing section 7804 to the external device via the transmission medium. Examples of the audiovisual interface 7811 include Wi-Fi™ (IEEE802.11a, IEEE802.11b, IEEE802.11g, IEEE802.11n, and so on), WiGiG, WirelessHD, Bluetooth, Zigbee, and other wireless communication methods conforming to wireless communication standards, used by a wireless communication device to transmit the audio signal and the video signal to the external device through a wireless medium. Also, the stream interface 7809 may be Ethernet™, USB (Universal Serial Bus, PLC, HDMI, or some other form of wired communication method conforming to wired communication standards, used by a wired communication device to transmit the audio signal and the video signal to an external device connected to the stream interface 7809. The stream interface 7809 may also be a terminal connected to a cable that outputs the audio signal and the video signal as-is, in analogue form.

According to the above configuration, the user is able to use the audio signal and the video signal decoded by the signal processing section 7804 with an external device.

The receiver 7800 further includes a operation input section 7810 receiving user operations as input. The receiver 7800 performs various types of switching in accordance with a control signal input by the operation input section 7810 in response to user operations, such as switching the main power ON or OFF, switching between received channels, switching between subtitle displays or audio languages, and switching the volume output by the audio output section 7806, and is also able to set the receivable channels and the like.

The receiver 7800 may also have a function to display the antenna level as an indicator of reception quality while the receiver 7800 is receiving signals. The antenna level is an indicator of signal quality calculated according to, for example, the RSSI (Received Signal Strength Indicator), the received field power, the C/N(Carrier-to-noise power ratio), the BER (Bit-Error Rate), the Packet Error Rate, the Frame Error Rate, the CSI (Channel State Information), or similar information on the signal received by the receiver 7800, and serves as a signal representing signal level and the presence of signal deterioration. In such circumstances, the demodulator 7802 has a reception quality estimation unit estimating the RSSI, the received field power, the C/N, the BER, the Packet Error Rate, the Frame Error Rate, the CSI, or similar information so received, and the receiver 7800 displays the antenna level (signal level, signal indicating signal degradation) in a user-readable format on the video display section 7807 in response to user operations.

The display format for the antenna level (signal level, signal indicating signal degradation) may be a displayed numerical value corresponding to the RSSI, the received field power, the C/N, the BER, the Packet Error Rate, the Frame Error Rate, the CSI, or similar information, or may be another type of display corresponding to the RSSI, the received field power, the C/N, the BER, the Packet Error Rate, the Frame Error Rate, the CSI, or similar information. The receiver 7800 may also display the antenna level (signal level, signal indicating signal degradation) as calculated for a plurality of streams s1, s2, and so on, into which the signal received using the reception method of the above Embodiment is separated, or may display a single antenna level (signal level, signal indicating signal degradation) calculated for all of the streams s1, s2, and so on. Also, when the video data and the audio data making up the program are transmitted using a band segmented transmission method, the level of the signal (signal indicating signal degradation) may be indicated at each band.

According to this configuration, the user is able to know the antenna level (signal level, signal indicating signal degradation) in a quantitative and qualitative manner, when reception is performed using the reception method of the above-described Embodiment.

Although the receiver 7800 is described above as including an audio output section 7806, a video display section 7807, a drive 7808, a stream interface 7809, and a audiovisual interface 7811, not all of these components are necessarily required. Provided that the receiver 7800 includes at least one of the above-listed components, the multiplexed data obtained through demultiplexing by the demodulator 7802 and by performing error correction decoding (i.e., performing decoding using a decoding method corresponding to the error correction decoding described in the present document) are usable thereby. In addition, the various uses of the receiver here described may be freely combined.

(Multiplexed Data)

Next, the details of an example configuration for the multiplexed data is described. The data structure used for broadcasting is, typically, an MPEG2-TS

(Transport Stream). The following explanation uses MPEG2-TS as an example. However, the data structure for the multiplexed data communicated using the transmission method and the reception method given in the above Embodiment is not limited to MPEG2-TS. Needless to say, the results described in each of the above Embodiments are also attainable using any of a variety of other data structures.

FIG. 79 illustrates a sample configuration for the multiplexed data. As shown in FIG. 79, the multiplexed data are obtained by multiplexing one or more elements making up a program (or an event, which is a portion of a program) currently being supplied by services. The element streams include, for example, video streams, audio streams, presentation graphics (PG) streams, interactive graphics (IG) streams, and so on. When the program being supplied with the multiplexed data is a movie, the video streams are the main video and sub-video thereof, the audio streams are the main audio and sub-audio to be mixed therewith, and the presentation graphics stream are subtitles for the movie. Here, the main video represents video that is normally displayed on the screen, while the sub-video represents video that is displayed as a smaller screen within the main video (e.g., a video of text data giving a synopsis of the movie). The interactive graphics streams represent interactive screens created by assigning GUI components to the screen.

Each of the streams included in the multiplexed data is identified by a PID, which is an identifier assigned to each of the streams. For example, the PIDs assigned to each of the streams are 0x1011 for the video stream used as the main video of the movie, 0x1100 through 0x111F for the audio streams, 0x1200 through 0x121F for the presentation graphics, 0x1400 through 0x141F for the interactive graphics streams, 0x1B00 through 0x1B1F for the video streams serving as sub-video for the movie, and 0x1A00 through 0x1A1F for the audio streams used as sub-audio to be mixed in with the main audio.

FIG. 80 is a schematic diagram illustrating an example of the manner in which the multiplexed data are multiplexed. First, a video stream 8001, made up of a plurality of video frames, and an audio stream 8004, made up of a plurality of audio frames, are each converted into respective PES packet sequences 8002 and 8005, which are in turn respectively converted into TS packets 8003 and 8006. Similarly, a presentation graphics stream 8011 and interactive graphics data 8014 are each converted into respective PES packet sequences 8012 and 8015, which are in turn respectively converted into TS packets 8013 and 8016. The multiplexed data 8017 are formed by multiplexing these TS packets (8003, 8006, 8013, and 8016) into a single stream.

FIG. 81 illustrates the details of the manner in which the video stream is stored in the PES packets. The first tier of FIG. 81 indicates a video frame sequence of the video stream. The second tier represents a PES sequence. As the arrows labeled yy1, yy2, yy3, and yy4 in FIG. 81 indicate, a plurality of video presentation units in the video stream, namely I-pictures, B-pictures, and P-pictures, are divided into individual pictures and each stored as the payload of individual PES packets. The PES packets each have a PES header. The PES header stores a PTS (Presentation Time-Stamp), which is a time-stamp for displaying the picture, and a DTS (Decoding Time-Stamp)_(m) which is a time-stamp for decoding the picture.

FIG. 82 illustrates the format of TS packets ultimately written into the multiplexed data. The TS packets are 188-byte fixed-length packets, each made up of a 4-byte TS header, which has the PID and other identifying information for the stream, and a 184-byte TS payload, which stores the data. The above-described PES packets are divided and each made to store the TS payload. For a BD-ROM, the TS packets also have a 4-byte TP_extra_header field assigned thereto, so as to make up 192-byte source packets which are written into the multiplexed data. The TP_extra_header field has information such as the ATS (Arrival Time Stamp) written therein. The ATS is a time-stamp for the beginning of TS packet transfer to the PID filter of the decoder. Within the multiplexed data, the source packets are arranged as indicated in the lower tier of FIG. 82. The numbers incremented from the beginning of the multiplexed data are termed SPN (Source Packet Numbers).

The TS packets included in the multiplexed data include a PAT (Program Association Table), a PMT (Program Map Table), a PCR (Program Clock Reference) and so on, in addition to the video streams, the audio streams, the presentation graphics streams, and so on. The PAT indicates the PID of the PMT to be used in the multiplexed data, and the PAT itself has a PID of 0. The PMT has the PIDs of each video, audio, subtitle, and other stream included in the multiplexed data, as well as stream attribute information (e.g., the frame rate, the aspect ratio, and so on) for the stream corresponding to each PID. The PMT also has various descriptors pertaining to the multiplexed data. The descriptors include, for example, copy control information indicating whether or not the multiplexed data may be copied. The PCR has STC time information corresponding to the ATS transferred to the decoder with each PCR packet, so as to synchronize the ATC (Arrival Time Clock), which is the ATS time axis, and the STC (System Time Clock), which is the PTS and DTS time axis.

FIG. 83 describes the details of PMT data structure. A PMT header is arranged at the head of the PMT, and describes the length and so on of the data included in the PMT. Subsequently, a plurality of descriptors pertaining to the multiplexed data are arranged. The above-described copy control information and the like are written as the descriptors. After the descriptors, stream information pertaining to the streams included in the multiplexed data is arranged in plurality. The stream information is made up of stream descriptors describing the stream type, stream PID, and stream attribute information (frame rate, aspect ratio, and so on) for identifying the compression codec of each stream. The stream descriptors are equal in number to the streams in the multiplexed data.

When recorded onto a recording medium, the above-described multiplexed data are recorded along with a multiplexed data information file.

FIG. 84 illustrates the configuration of the multiplexed data information file. As shown in FIG. 84, the multiplexed data information file is management information for the multiplexed data that is in one-to-one correspondence therewith and is made up of clip information, stream attribute information, and an entry map.

As shown in FIG. 84; the clip information is made up of the system rate, the playback start time-stamp, and the playback end time-stamp. The system rate indicates the maximum transfer rate at which the multiplexed data are transferred to the PID filter of a later-described system target decoder. The interval between ATS included in the multiplexed data is set so as to be equal to or less than the system rate. The playback start time-stamp is the PTS of the leading video frame in the multiplexed data, and the playback end time-stamp is the PTS of the final video frame in the multiplexed data, with one frame of playback duration added thereto.

FIG. 85 illustrates the configuration of the stream attribute information included in the multiplexed data information file. As shown in FIG. 85, the stream attribute information is attribute information for each of the streams included in the multiplexed data, registered in each PID. The attribute information differs for each of the video streams, audio streams, presentation graphics streams, and interactive graphics streams. The video stream attribute information includes such information as the compression codec used to compress the video stream, the resolution of the picture data making up the video stream, the aspect ratio, the frame rate, and so on. The audio stream attribute information includes such information as the compression codec used to compress the audio stream, the number of channels included in the audio stream, the compatible languages, the sampling frequency, and so on. This information is used to initialize the decoder before the player begins playback.

In the present Embodiment, the stream types included in the PMT are used, among the above-described multiplexed data. When the multiplexed data are recorded on a recording medium, the video stream attribute information included in the multiplexed data is used. Specifically, given the video coding method or device described in the above Embodiments, a step or means is provided to established specific information indicating that the stream types included in the PMT or the video stream attribute information is for video data generated by the video coding method or device described in the above Embodiments. According to this configuration, the video data generated by the video coding method or device described in the above Embodiments is distinguished from video data conforming to some other standard.

FIG. 86 illustrates an example of the configuration of an audiovisual output device 8600 that includes a receiving device 8604 receiving a modulated signal that includes audio and video data, or data for a data broadcast, transmitted by a broadcasting station (base station). The configuration of the receiving device 8604 corresponds to that of the receiver 7800 shown in FIG. 78. The audiovisual output device 8600 is equipped with, for example, an operating system (OS), and with a communication device 8606 (such as a wireless LAN (Local Area Network) or Ethernet™ communication device) for connecting to the Internet. Accordingly, a video display section 8601 is able to simultaneously display data video 8602 for the data broadcast and hypertext 8603 (shown as World Wide Web) supplied over the internet.

Then, by using a remote control (or a mobile phone or keyboard) 8607, one of the data video 8602 for the data broadcast and the hypertext 8603 supplied over the internet can be selected and modified. For example, when the hypertext 8603 supplied over the internet is selected, the website being displayed can be changed by using the remote control to perform an operation. Similarly, when the audio and video data, or the data for the data broadcast, are selected, information on the currently selected channel (or the selected (television) program, or the selected audio transmission) can be transmitted by using the remote control 8607. Thus, an interface 8605 acquires information transmitted by the remote control, and the receiving device 8604 then demodulates the signal corresponding to the selected channel, performs error correction decoding and similar processing thereon (i.e., performs decoding using a decoding method corresponding to the error correction decoding described in the present document), and thereby obtains received data.

Here, the receiving device 8604 acquires information on the control symbols included in the transmission method information included in the signal corresponding to the selected channel, thereby correctly setting the reception operations, demodulation method, error correction decoding method and so on, which enables acquisition of the data included in the data symbols transmitted by the broadcasting station (base station). The above describes an example where the user selects a channel using the remote control 8607. However, the above-described operations are also possible using a selection key installed on the audiovisual output device 8600 for channel selection.

The audiovisual output device 8600 may also be operated using the Internet. For example, a recording (storage) session is programmed into the audiovisual output device 8600 from a different terminal that is also connected to the Internet. (Accordingly, and as shown in FIG. 78, the audiovisual output device 8600 has a drive 7808.) Then, the channel is selected before recording begins, and the receiving device 8604 demodulates the signal corresponding to the selected channel and applies error correction decoding processing thereto to obtain received data. Here, the receiving device 8604 obtains control symbol information, which includes information on the transmission method included in the signal corresponding to the selected channel, and is thus able to correctly set the methods for the receiving operation, demodulating operation, error correction decoding, and so on (when a plurality of error correction decoding methods are prepared as described in the present document (e.g., a plurality of different codes are prepared, or a plurality of codes having different coding rates are prepared), the error correction decoding method corresponding to the error correction codes set from among a plurality of error correction codes are used. As such, the data included in the data symbols transmitted by the broadcasting station (base station) are made receivable.

(Other Addenda)

In the present document, the transmitting device is plausibly installed on, for example, a broadcasting station, a base station, an access point, a terminal, a mobile phone, or some other type of communication or broadcasting device. Likewise, the receiving device is plausibly installed on a television, a radio, a terminal, a personal computer, a mobile phone, an access point, a base station, or some other type of communication device. Also, the transmitting device and the receiving device of the present invention are devices with communication functionality. These devices each plausibly take the form of a television, a radio, a personal computer, a mobile phone, or some other device for executing applications connectable through some type of interface (e.g., USB).

Also, in the present Embodiment, symbols other than the data symbols may be arranged in the frames, such as pilot symbols (preamble, unique word, postamble, reference symbols, and so on) or control information symbols. Although the pilot symbols and control information symbols are presently named as such, the symbols may take any name, as only the function thereof is relevant.

A pilot symbol is, for example, a known symbol modulated by the communicating device using PSK modulation (alternatively, the receiver may come to know the symbols transmitted by the transmitter by means of synchronization), such that the receiver uses the symbol to detect the signal by frequency synchronization, time synchronization, channel estimation (or CSI estimation) (for each modulated signal).

Similarly, a control information symbol is a symbol for communicating information (e.g., the modulation method, error correction coding method, coding rate for the error correction coding method, upper layer information, and so on used in communication) required for inter-party communication in order to realize non-data communication (i.e., of applications).

The present invention is not limited to the above-described Embodiments. A number of variations thereon are also possible. For example, although the above Embodiments describe the use of a communication device, this is not intended as a limitation. The communication method may also be performed using software.

Also, although the above describes a precoding switching scheme in a transmission method for two antennas transmitting two modulated signals, this is not intended as a limitation. Precoding may be performed on four mapped signals to generate four modulated signals in a transmission method for four antennas. That is, a precoding switching scheme is also possible in which precoding is performed on N post-mapping signals to generate N modulated signals in a transmission method for N antennas, the precoding weights (matrix) being modified to match.

Although the present document uses terms such as precoding, precoding weight, and precoding matrix, the terms may be freely modified (e.g., using the term code book) as the focus of the present invention is the signal processing itself.

Although the present document describes the receiving device as using ML operations, APP, Max-log APP, ZF, MMSE, and so on, and the results thereof are used to obtain soft decision results (log-likelihood and log-likelihood ratio) and hard decision results (zero or one) for each bit of the data transmitted by the transmitting device, these may be termed, in generality, wave detection, demodulation, detection, estimation, and separation.

Further, streams s1(t) and s2(t) may transport different data or may transport identical data.

Also, the transmission antenna of the transmitting device and the reception antenna of the receiving device, each drawn as a single antenna in the drawings, may also be provided as a plurality of antennas.

In the present document, the universal quantifier V is used, as well as the existential quantifier 3.

Also, in the present document, radians are used as the unit of phase in the complex plane, such as for arguments.

When using the complex plane, the polar coordinates of complex numbers are expressible in polar form. For a complex number z=a+jb (where a and b are real numbers and j is the imaginary unit), a point (a, b) is expressed, in the complex plane, as the polar coordinates thereof [r, θ], by satisfying a=r×cos θ and b=r×sin θ, where r is the absolute value of z (r=|z|) and θ is the argument. Thus, z=a+jb is represented as re^(jθ).

Although the present document describes the baseband signals s1, s2, z1, and z2 as complex signals, the complex signals may also be represented as I+jQ (where j is the imaginary unit) by taking I as the in-phase signal and Q as the quadrature signal. Here, I may be zero, and Q may also be zero.

Also, FIG. 87 illustrates a sample broadcasting system using a method of switching between precoding matrices according to a rule described in the present document. As shown in FIG. 87, a video coding section 8701 takes video as input, performs video coding thereon, and outputs coded video data 8702. An audio coding section 8703 takes audio as input, performs audio coding thereon, and outputs coded audio data 8704. A data coding section 8705 takes data as input, performs data coding (e.g., data compression) thereon, and outputs coded data 8706. Taken together, these form an information source coding section 8700.

A transmission section 8707 takes the coded video data 8702, the coded audio data 8704, and the coded data 8706 as input, uses one or all of these as transmission data, applies error correction coding, modulation, precoding, and other processes (e.g., signal processing by the transmitting device) thereto, and outputs transmission signals 8708_1 through 8708_N. The transmission signals 8708_1 through 8708_N are then respectively transmitted to antennas 8709_1 through 8709_N as electrical waves.

A receiving section 8712 takes received signals 8710_1 through 8710_M received by the antennas 8711_1 through 8711_< as input, performs frequency conversion, precoding decoding, log-likelihood ratio calculation, error correction decoding, and other processing (i.e., performs decoding using a decoding method corresponding to the error correction decoding described in the present document) (e.g., processing by the receiving device) thereon, and outputs received data 8713, 8715, and 8717. An information source decoding section 8719 takes the received data 8713, 8715, and 8717 as input. A video decoding section 8714 takes received data 8713 as input, performs video decoding thereon, and outputs a video signal. The video is then displayed by a television. Similarly, an audio decoding section 8716 takes received data 8715 as input. Audio decoding is performed and an audio signal is output. The audio then plays through a speaker. Also, a data decoding section 8718 takes received data 8717 as input, performs data decoding thereon, and outputs data information.

In the above-described Embodiments of the present invention, the multicarrier communication scheme, such as OFDM, may use any number of encoders installed in the transmitting device. Accordingly, for example, when the transmitting device has one encoder installed, the method for distributing the output may of course be applied to a multicarrier communication scheme such as OFDM.

Also, a method for regularly switching between precoding matrices may also be realized using a plurality of precoding matrices different from the described method for switching between different precoding matrices, to realize the same effect.

Also, for example, a program for executing the above-described communication method may be stored in advance in the ROM, and may then be executed through the operations of the CPU.

Further, the program for executing the above-described communication method may be recorded onto a computer-readable recording medium, the program recorded onto the recording medium may be stored in the RAM of a computer, and the computer may operate according to the program.

The components of each of the above-described Embodiments may typically be realized as LSI (Large Scale Integration), a form of integrated circuit. The components of each of the Embodiments may be realized as individual chips, or may be realized in whole or in part on a common chip.

Although LSI is named above, the chip may be named an IC (integrated circuit), a system LSI, a super LSI, or an ultra LSI, depending on the degree of integration. Also, the integrated circuit method is not limited to LSI. A private circuit or a general-purpose processor may also be used. After LSI manufacture, a FPGA (Field Programmable Gate Array) or reconfigurable processor may also be used.

Furthermore, future developments may lead to technology enhancing or surpassing LSI semiconductor technology. Such developments may, of course, be applied to the integration of all functional blocks. Biotechnology applications are also plausible.

Also, the coding method and decoding method may be realized as software. For example, a program for executing the above-described coding method and decoding method may be stored in advance in the ROM, and may then be executed through the operations of the CPU.

Further, the program for executing the above-described coding method and decoding method may be recorded onto a computer-readable recording medium, the program recorded onto the recording medium may be stored in the RAM of a computer, and the computer may operate according to the program.

The present invention is not limited to wireless communication, but obviously also applies to wired communication, including PLC, visible spectrum communication, and optical communication.

In the present document, the term time-varying period is used. This refers to the period as formatted for a time-varying LDPC-CC.

In the present Embodiment, the symbol T in A^(T) is used to indicate that a matrix A^(T) is the transpose matrix of a matrix A. Accordingly, given a matrix A with m rows and n columns, the matrix A^(T) has n rows and m columns in which the elements (row i, column j) of matrix A are inverted into elements (row j, column i).

The present invention is not limited to the above-described Embodiments. A number of variations thereon are also possible. For example, although the above-described Embodiment mainly describes a situation in which an encoder is realized, this is not intended as a limitation. The same applies to a situation in which a communication device is realized (as made possible by LSI).

One aspect of the encoding method of the present invention is an encoding method of performing low-density parity check convolutional coding (LDPC-CC) having a time-varying period of q using a parity check polynomial of a coding rate of (n−1)/n (where n is an integer equal to or greater than two), the time-varying period of q being a prime number greater than three, the method receiving an information sequence as input and encoding the information sequence using Math. 140 as the gth (g=0, 1, . . . , q−1) parity check polynomial that satisfies zero.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 140} \right\rbrack & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + D^{{a\# g},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + D^{{a\# g},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + D^{{a\# g},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 140} \right) \end{matrix}$

In Math. 140, the symbol % represents the modulo operator, and the coefficients k=1, 2, . . . , n satisfy the following:

a_(#0, k, 1)%q = a_(#1, k, 1)%q = a_(#2, k, 1)%q = a_(#3, k, 1)%q = … = a_(#g, k, 1)%q = … = a_(#q − 2, k, 1)%q = a_(#q − 1, k, 1)%q = v_(p = k)  (where  v_(p = k)  is  a  fixed  value); b_(#0, 1)%q = b_(#1, 1)%q = b_(#2, 1)%q = b_(#3, 1)%q = … = b_(#g, 1)%q = … = b_(#q − 2, 1)%q = b_(#q − 1, 1)%q = w  (where  w  is  a  fixed  value); a_(#0, k, 2)%q = a_(#1, k, 2)%q = a_(#2, k, 2)%q = a_(#3, k, 2)%q = … = a_(#g, k, 2)%q = … = a_(#q − 2, k, 2)%q = a_(#q − 1, k, 2)%q = y_(p = k)  (where  y_(p = k)  is  a  fixed  value); b_(#0, 2)%q = b_(#1, 2)%q = b_(#2, 2)%q = b_(#3, 2)%q = … = b_(#g, 2)%q = … = b_(#q − 2, 2)%q = b_(#q − 1, 2)%q = z  (where  z  is  a  fixed  value); a_(#0, k, 3)%q = a_(#1, k, 3)%q = a_(#2, k, 3)%q = a_(#3, k, 3)%q = … = a_(#g, k, 3)%q = … = a_(#q − 2, k, 3)%q = a_(#q − 1, k, 3)%q = s_(p = k)  (where  s_(p = k)  is  a  fixed  value);

Further, in Math. 140, a_(#g,k,1), a_(#g,k,2), and a_(#g,k,3) are natural numbers equal to or greater than one, and satisfy the relations a_(#g,k,1)≠a_(#g,k,2), a_(#g,k,1)≠a_(#g,k,3), and a_(#g,k,2)≠a_(#g,k,3). Similarly, b_(#g,1) and b_(#g,2) are natural numbers equal to or greater than one, and satisfy the relation b_(#g,1)≠b_(#g,2).

Also, in Math. 140, v_(p=k) and y_(p=k) are natural numbers equal to or greater than one.

One aspect of the encoding method of the present invention is an encoding method of performing low-density parity check convolutional coding (LDPC-CC) having a time-varying period of q using a parity check polynomial of a coding rate of (n−1)/n (where n is an integer equal to or greater than two), the time-varying period of q being a prime number greater than three, the method receiving an information sequence as input and encoding the information sequence using Math. 141 as the gth (g=0, 1, . . . , q−1) parity check polynomial that satisfies zero.

a_(#0, k, 1)%q = a_(#1, k, 1)%q = a_(#2, k, 1)%q = a_(#3, k, 1)%q = … = a_(#g, k, 1)%q = … = a_(#q − 2, k, 1)%q = a_(#q − 1, k, 1)%q = v_(p = k)  (where  v_(p = k)  is  a  fixed  value); b_(#0, 1)%q = b_(#1, 1)%q = b_(#2, 1)%q = b_(#3, 1)%q = … = b_(#g, 1)%q = … = b_(#q − 2, 1)%q = b_(#q − 1, 1)%q = w  (where  w  is  a  fixed  value); a_(#0, k, 2)%q = a_(#1, k, 2)%q = a_(#2, k, 2)%q = a_(#3, k, 2)%q = … = a_(#g, k, 2)%q = … = a_(#q − 2, k, 2)%q = a_(#q − 1, k, 2)%q = y_(p = k)  (where  y_(p = k)  is  a  fixed  value); b_(#0, 2)%q = b_(#1, 2)%q = b_(#2, 2)%q = b_(#3, 2)%q = … = b_(#g, 2)%q = … = b_(#q − 2, 2)%q = b_(#q − 1, 2)%q = z  (where  z  is  a  fixed  value),   and a_(#0, k, 3)%q = a_(#1, k, 3)%q = a_(#2, k, 3)%q = a_(#3, k, 3)%q = … = a_(#g, k, 3)%q = … = a_(#q − 2, k, 3)%q = a_(#q − 1, k, 3)%q = s_(p = k)  (where  s_(p = k)  is  a  fixed  value)

of a gth (g=0, 1, . . . , q−1) parity check polynomial that satisfies the above for k=1, 2, . . . , n−1.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 141} \right\rbrack & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + D^{{a\# g},1,3}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + D^{{a\# g},2,3}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + D^{{a\# g},{n - 1},3}} \right){X_{n - 1}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{Math}.\mspace{14mu} 141} \right) \end{matrix}$

A further aspect of the encoder of the present invention is an encoder that performs low-density parity check convolutional coding (LDPC-CC) having a time-varying period of q using a parity check polynomial of a coding rate of (n−1)/n (where n is an integer equal to or greater than two), the time-varying period of q being a prime number greater than three, including a generating section that receives information bit X[i](r=1, 2, . . . , n−1) at time i as input, designates an equivalent to the gth (g=0, 1, . . . , q−1) parity check polynomial that satisfies zero as represented in Math. 140 as Math. 142 and generates parity bit P[i] at time i using a formula with k substituting for g in Math. 142 when i%q=k and an output section that outputs parity bit P[i].

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 142} \right\rbrack & \; \\ {{P\lbrack i\rbrack} = {{X_{1}\lbrack i\rbrack} \oplus {X_{1}\left\lfloor {i - a_{{\# g},1,1}} \right\rfloor} \oplus {X_{1}\left\lfloor {i - a_{{\# g},1,2}} \right\rfloor} \oplus {X_{2}\lbrack i\rbrack} \oplus {X_{2}\left\lfloor {i - a_{{\# g},2,1}} \right\rfloor} \oplus {X_{2}\left\lfloor {i - a_{{\# g},2,2}} \right\rfloor} \oplus \ldots \oplus {X_{n - 1}\lbrack i\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},1}} \right\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},2}} \right\rbrack} \oplus {P\left\lbrack {i - b_{{\# g},1}} \right\rbrack} \oplus {P\left\lbrack {i - b_{{\# g},2}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 142} \right) \end{matrix}$

Still another aspect of the decoding method of the present invention is a decoding method corresponding to the above-described encoding method for performing low-density parity check convolutional coding (LDPC-CC) having a time-varying period of q (prime number greater than three) using a parity check polynomial having a coding rate of (n−1)/n (where n is an integer equal to or greater than two), for decoding an encoded information sequence encoded using Math. 140 as the gth (g=0, 1, . . . , q−1) parity check polynomial that satisfies zero, the method receiving the encoded information sequence as input and decoding the encoded information sequence using belief propagation (BP) based on a parity check matrix generated using Math. 140 which is the gth parity check polynomial that satisfies zero.

Still a further aspect of the decoder of the present invention is a decoder corresponding to the above-described encoding method for performing low-density parity check convolutional coding (LDPC-CC) having a time-varying period of q (prime number greater than three) using a parity check polynomial having a coding rate of (n−1)/n (where n is an integer equal to or greater than two), that performs decoding an encoded information sequence encoded using Math. 140 as the gth (g=0, 1, . . . , q−1) parity check polynomial that satisfies zero, including a decoding section that receives the encoded information sequence as input and decodes the encoded information sequence using belief propagation (BP) based on a parity check matrix generated using Math. 140 which is the gth parity check polynomial that satisfies zero.

In one aspect of the coding method of the present invention, a coding method for low-density parity check convolutional coding (LDPC-CC) having a time-varying period of s has a step of supplying a parity check polynomial that satisfies an ith (i=0, 1, . . . , s−2, s−1) as represented in Math. 98-i, and a step of acquiring an LDPC-CC codeword by using a linear operation on a zeroth through an (s−1)th parity check polynomial and on input data, the time-varying period at coefficient A_(Xk,i) of term X_(k)(D) being α_(k) (where α_(k) is an integer greater than one) (and k=1, 2, . . . n−2, n−1), the time-varying period of coefficient B_(Xk,i) of term P(D) being β(β being an integer greater than one), the time-varying period s being a lowest common multiple of α₁, α₂, . . . , α_(n−2), α_(n−1), and β, Math. 97 being satisfied when i%α_(k)=j%α_(k) (i, j=0, 1, . . . , s−2, s−1; i≠j) holds, and Math. 98 being satisfied when i%β=j%β (i, j=0, 1, . . . , s−2, s−1; i≠j) holds.

In another aspect of the coding method of the present invention, the above-described coding method applies where the time-varying period terms α₁, α₂, . . . , α_(n−1), and β are coprime.

In a further aspect of the encoder of the present invention, the encoder encodes LDPC-CC, and is equipped with a parity calculation unit calculating a parity sequence using the above-described coding method.

In one aspect of a decoding method of the present invention, a decoding method for low-density parity check convolutional coding (LDPC-CC) having a time-varying period of s and decoding a coded information sequence coded using a parity check polynomial that satisfies an ith (i=0, 1, . . . , s−2, s−1) zero as represented in Math. 98-i, takes the coded information sequence as input, uses the parity check polynomial that satisfies the ith zero as shown in Math. (98-i) to generate a parity check matrix, and accordingly performs belief propagation (BP) to decode the coded information sequence.

In one aspect of a decoder of the present invention, a decoder for decoding LDPC-CCs using belief propagation (BP) comprises a row processing computing unit performing row processing computation using a check matrix corresponding to the parity check polynomial used by the above-described encoder, a column processing computation unit performing column processing computation using the check matrix, and a determination unit estimating a codeword using the results calculated by the row processing computing unit and the column processing computing unit.

In one aspect of the coding method of the present invention, a coding method generates LDPC-CCs having a coding rate of ⅓ and a time-varying period of h from LDPC-CCs based on a parity check polynomial satisfying a gth (g=0, 1, . . . , h−1) zero and having a time-varying period of h and a coding rate of ½ as given by Math. 143, and includes, for a data sequence formed of information and parity bits that are coded output produced using an LDPC-CC having a coding rate of ½ and a time-varying period of h, a step of selecting Z bits of information X_(j) from the information bit sequence (where time j includes times j₁ through j₂, j₁ and j₂ are both even numbers or are both odd numbers, and Z=(j₂−j₁)/2), a step of inserting known information into the Z bits of information X_(j) so selected, and a step of computing the parity bits from the information included in the known information, wherein, in the selection step, all times j includes in time j₁ through time j₂ have h different remainders when divided by h, and the Z bits of information X_(j) are selected according to the quantity of remainders.

[Math. 143]

(D ^(a#g,1,1) +D ^(a#g,1,2))X(D)+(D ^(b#g,1) +D ^(b#g,2)+1)P(D)=0  (Math. 20)

In Math. 143, X(D) is a polynomial of information X, and P(D) is a parity polynomial. Also, a_(#g,1,1), and a_(#g,1,2), are natural numbers equal to or greater than one, and satisfy the relation a_(#g,1,1)≠a_(#g,1,2). Similarly, b_(#g,1) and b_(#g,2) are natural numbers equal to or greater than one, and satisfy the relation b_(#g,1)≠b_(#g,2) (where g=0, 1, 2, . . . , h−2, h−1).

Also, Condition #17, given below, holds for Math. 143. Here, c % d represents an operation of taking the remainder when c is divided by d.

<Condition #17>

a_(#0, 1, 1)%h = a_(#1, 1, 1)%h = a_(#2, 1, 1)%h = a_(#3, 1, 1)%h = … = a_(#g, 1, 1)%h = … = a_(#h − 2, 1, 1)%h = a_(#h − 1, 1, 1)%h = v_(p = k)  (where  v_(p = k)  is  a  fixed  value) b_(#0, 1)%h = b_(#1, 1)%h = b_(#2, 1)%h = b_(#3, 1)%h = … = b_(#g, 1)%h = … = b_(#h − 2, 1)%h = b_(#h − 1, 1)%h = w  (where  w  is  a  fixed  value) a_(#0, 1, 2)%h = a_(#1, 1, 2)%h = a_(#2, 1, 2)%h = a_(#3, 1, 2)%h = … = a_(#g, 1, 2)%h = … = a_(#h − 2, 1, 2)%h = a_(#h − 1, 1, 2)%h = y_(p = 1)  (where  y_(p = 1)  is  a  fixed  value) b_(#0, 2)%h = b_(#1, 2)%h = b_(#2, 2)%h = b_(#3, 2)%h = … = b_(#g, 2)%h = … = b_(#h − 2, 2)%h = b_(#h − 1, 2)%h = z  (where  z  is  a  fixed  value) a_(#0, k, 3)%q = a_(#1, k, 3)%q = a_(#2, k, 3)%q = a_(#3, k, 3)%q = … = a_(#g, k, 3)%q = … = a_(#q − 2, k, 3)%q = a_(#q − 1, k, 3)%q = s_(p = k)  (where  s_(p = k)  is  a  fixed  value).

In another aspect of a coding method of the present invention, time j₁ is time 2hi, time j₂ is time 2h(i+k−1)+2h−1, the Z bits are hk bits, the selection step selects Z bits of information X_(j) from 2×h×k bits of information X_(2hi), X_(2hi+1), X_(2hi+2), . . . , X_(2hi+2h−1), . . . , X_(2h(i+k−1)), X_(2h(i+k−1)+1), X_(2h(i+k−1)+2), . . . , X_(2h(i+k−1)+2h−1), such that Z bits of information X_(j) are selected where, for all times j included in times j₁ to j₂ when divided by h, the difference between a number of remainders (0+γ) mod h (for a non-zero number) and a number of remainders (v_(p=1)+γ) mod h (for a non-zero number) is equal to or less than one, the difference between a number of remainders (0+γ) mod h (for a non-zero number) and a number of remainders (y_(p=1)+γ) mod h (for a non-zero number) is equal to or less than one, and the difference between a number of remainders (v_(p=1)+γ) mod h (for a non-zero number) and a number of remainders (y_(p=1)+γ) mod h (for a non-zero number) is equal to or less than one.

In a further aspect of the coding method of the present invention, for a γ that does not satisfy the above conditions, the number of remainders (0+γ) mod h, the number of remainders (v_(p=1)+γ) mod h, and the number of remainders (y_(p=1)+γ) mod h are all zero.

A further aspect of the decoding method of the present invention is a decoding method corresponding to the encoding method described earlier for performing low-density parity check convolutional coding (LDPC-CC) having a time-varying period of h using a parity check polynomial that satisfies the gth (i=0, 1, . . . , q−1) zero of Math. 143, the decoding method receiving the encoded information sequence as input and decoding the encoded information sequence using belief propagation (BP) based on a parity check matrix generated using Math. 143 which is the gth parity check polynomial that satisfies zero

In a further aspect of the encoder of the present invention, the encoder encodes LDPC-CC, and is equipped with a calculation unit calculating a parity sequence using the above-described coding method.

In an alternate aspect of a decoder of the present invention, a decoder for decoding LDPC-CCs using belief propagation (BP) comprises a row processing computing unit performing row processing computation using a check matrix corresponding to the parity check polynomial used by the above-described encoder, a column processing computation unit performing column processing computation using the check matrix, and a determination unit estimating a codeword using the results calculated by the row processing computing unit and the column processing computing unit.

Another aspect of the coding method of the present invention is a coding method that generates LDPC-CCs having a time-varying period of h and a coding rate that is less than a coding rate of (n−1)/n, from LDPC-CCs defined according to a gth parity check polynomial (where g=0, 1, . . . , h−1) having a time-varying period of h and a coding rate of (n−1)/n as expressed in Math. 144-g, having, for a data sequence made up of information and parity bits that are the output of the LDPC-CCs having a time-varying period of h and a coding rate of (n−1)/n, a step of selecting an information bit sequence that is Z bits of information X_(f,j) (f=1, 2, 3, . . . , n−1; j is a time), a step of inserting known information into the information X_(f,j) so selected, and a step of calculating the parity bits from the information included in the known information, wherein the selection step selects the information X_(f,j) according to a remainder found when a time j is divided by h, and according a number of times j having a remainder.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 144} \right\rbrack & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + 1} \right){X_{n - 1}(D)}} + {\left( {D^{{b\# g},1} + D^{{b\# g},2} + 1} \right){P(D)}}} = 0} & \left( {{{Math}.\mspace{14mu} 144}\text{-}g} \right) \end{matrix}$

In Math. 144-g, X_(p)(D) is a polynomial of information X, and P(D) is a parity polynomial (p=1, 2, . . . , n−1). Also, a_(#g,p,1) and a_(#g,p,2), are natural numbers equal to or greater than one, and satisfy the relation a_(#g,p,1)≠a_(#g,p,2). Similarly, b_(#g,1) and b_(#g,2) are natural numbers equal to or greater than one, and satisfy the relation b_(#g,1)≠b_(#g,2) (where g=0, 1, 2, . . . , h−2, h−1; p=1, 2, . . . , n−1).

Also, Condition #18-1 and Condition #18-2, given below, hold for Math. 144-g. Here, c % d represents an operation of taking the remainder when c is divided by d.

<Condition #18-1>

a_(#0, k, 1)%h = a_(#1, k, 1)%h = a_(#2, k, 1)%h = a_(#3, k, 1)%h = … = a_(#g, k, 1)%h = … = a_(#h − 2, k, 1)%h = a_(#h − 1, k, 1)%h = v_(p = k)  (where  v_(p = k)  is  a  fixed  value);   and b_(#0, 1)%h = b_(#1, 1)%h = b_(#2, 1)%h = b_(#3, 1)%h = … = b_(#g, 1)%h = … = b_(#h − 2, 1)%h = b_(#h − 1, 1)%h = w  (where  w  is  a  fixed  value).

<Condition #18-2>

a_(#0, k, 2)%h = a_(#1, k, 2)%h = a_(#2, k, 2)%h = a_(#3, k, 2)%h = … = a_(#g, k, 2)%h = … = a_(#h − 2, k, 2)%h = a_(#h − 1, k, 2)%h = y_(p = 1)  (where  y_(p = k)  is  a  fixed  value);   and b_(#0, 2)%h = b_(#1, 2)%h = b_(#2, 2)%h = b_(#3, 2)%h = … = b_(#g, 2)%h = … = b_(#h − 2, 2)%h = b_(#h − 1, 2)%h = z  (where  z  is  a  fixed  value).

In another aspect of a coding method of the present invention, time j is a value selected from among time hi through time h(i+k−1)+h−1, and the selection step selects Z bits of information X_(f,j) from h×(n−1)×k bits of information X_(1,hi), X_(2,hi), . . . , X_(n−1,hi), . . . , X_(1,h(i+k−1)+h−1), X_(2,h(i+k−1)+h−1), . . . , X_(n−1,h(i+k−1)+h−1), such that Z bits of information X_(f,j) are selected where, for all times j when divided by h, the difference between a number of remainders (0+γ) mod h (for a non-zero number) and a number of remainders (v_(p=f)+γ) mod h (for a non-zero number) is equal to or less than one, the difference between a number of remainders (0+γ) mod h (for a non-zero number) and a number of remainders (y_(p=1)+γ) mod h (for a non-zero number) is equal to or less than one, and the difference between a number of remainders (v_(p=f)+γ) mod h (for a non-zero number) and a number of remainders (y_(p=f)+γ) mod h (for a non-zero number) is equal to or less than one (f=1, 2, 3, . . . , n−1).

In yet another aspect of a coding method of the present invention, time j is a value selected from 0 through v, and the selection step selects Z bits of information X_(f), from h×(n−1)×k bits of information X_(1,0), X_(2,0), . . . , X_(n−1,0), . . . , X_(1,v), X_(2,v), . . . , X_(n−1,v), such that Z bits of information X_(f,j) are selected where, for all times j when divided by h, the difference between a number of remainders (0+γ) mod h (for a non-zero number) and a number of remainders (v_(p=1)+γ) mod h (for a non-zero number) is equal to or less than one, the difference between a number of remainders (0+γ) mod h (for a non-zero number) and a number of remainders (y_(p=f)+γ) mod h (for a non-zero number) is equal to or less than one, and the difference between a number of remainders (v_(p=f)+γ) mod h (for a non-zero number) and a number of remainders (y_(p=f)+γ) mod h (for a non-zero number) is equal to or less than one (f=1, 2, 3, . . . , n−1).

A further aspect of the decoding method of the present invention is a decoding method corresponding to the encoding method described earlier for performing low-density parity check convolutional coding (LDPC-CC) having a time-varying period of h using a parity check polynomial that satisfies the gth (i=0, 1, . . . , q−1) zero of Math. 144-g, the decoding method receiving the encoded information sequence as input and decoding the encoded information sequence using belief propagation (BP) based on a parity check matrix generated using Math. 144-g which is the gth parity check polynomial that satisfies zero

In a further aspect of the encoder of the present invention, the encoder encodes LDPC-CC, and is equipped with a calculation unit calculating a parity sequence using the above-described coding method.

In an alternate aspect of a decoder of the present invention, a decoder for decoding LDPC-CCs using belief propagation (BP) comprises a row processing computing unit performing row processing computation using a check matrix corresponding to the parity check polynomial used by the above-described encoder, a column processing computation unit performing column processing computation using the check matrix, and a determination unit estimating a codeword using the results calculated by the row processing computing unit and the column processing computing unit.

Embodiment 17

The present Embodiment describes concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial where the tail-biting scheme described in Embodiments 3 and 15 is used. Specifically, the present Embodiment describes the concatenate code having a coding rate of ½.

Related to the above, current problems in error correction code are described first. Non-Patent Literature 21 to Non-Patent Literature 24 propose Turbo coding, including Duo Binary Turbo code. Turbo coding involves code having high error-correction capability that approaches the Shannon limit. Although decoding is performable using the BCJR algorithm described in Non-Patent Literature 25 or the SOVA algorithm, which uses Max-log approximation, described in Non-Patent Literature 26, problems with these decoding algorithms include, as discussed in Non-Patent Literature 27, difficulty with high-speed decoding. Particularly, for communication at speeds greater than or equal to 1 Gbps for example, Turbo code is problematic as error correction code.

However, LDPC codes are also codes having high error-correction capability that approaches the Shannon limit. LDPC codes included LDPC convolutional codes and LDPC block codes. Methods for decoding of LDPC codes include sum-product decoding as described in Non-Patent Literature 2 and Non-Patent Literature 28, min-sum decoding, which is a simplification of sum-product decoding, as described in Non-Patent Literature 4 to Non-Patent Literature 7 and in Non-Patent Literature 29, Normalized BP decoding, offset-BP decoding, Shuffled BP decoding using some contrivance to update beliefs, Layered BP decoding, and so on. In order to parallelize the row operations (horizontal operations) and column operations (vertical operations) realized thereby, the decoding method used for these belief propagation algorithms that use a parity check matrix applies LDPC code as the error correction code, which differ from Turbo codes for communication at high speeds greater than, for example, 1 Gbps (e.g., as given in Non-Patent Literature 27). Accordingly, generating LDPC codes having high error-correction capability is an important technical problem in the realization of improved communication quality and of higher-speed data communication.

In order to solve the above problem, the present Embodiment enables the realization of a high-speed decoder that achieves high error-correction capability by, in turn, realizing LDPC (block) code having high error-correction capability.

The following describes the details of a code configuration method for the aforementioned invention. FIG. 88 illustrates an example of an encoder for concatenate code pertaining to the present Embodiment, concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial where the tail-biting scheme is used. As shown in FIG. 88, the feed-forward LDPC convolutional codes based on a parity check polynomial and using the tail-biting scheme have a coding rate of ½, have a concatenate code block size of N bits, each block having M bits of information, and M bits of parity being provided per block, accordingly satisfying N=2M. Thus, the information included in an ith block is X_(i,1,0), X_(i,1,1), X_(i,1,2), . . . , X_(i,1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,1,M−2), X_(i,1,M−1).

An encoder 8801 for the feed-forward LDPC convolutional codes based on a parity check polynomial and using the tail-biting scheme takes, when encoding the ith block, the information X_(i,1,0), X_(i,1,1), X_(i,1,2), . . . , X_(i,1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,1,M−2), X_(i,1,M−1) (8800) as input, performs encoding thereon, and outputs LDPC-CC coded parity P_(i,b1,0), P_(i,b1,1), P_(i,b1,2), . . . , P_(i,b1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , P_(i,b1,M−2), P_(i,b1,M−1) (8803). Also, the encoder 8801 outputs the information X_(i,1,0), X_(i,1,1), X_(i,1,2), . . . , X_(i,1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,1,M−2), X_(i,1,M−1) (8800) intended for systematic codes. The details of the coding method are described later. An interleaver 8804 takes the LDPC-CC coded parity P_(i,b1,0), P_(i,b1,1), P_(i,b1,2), . . . , P_(i,b1,j) (=0, 1, 2, . . . , M−3, M−2, M−1), . . . , P_(i,b1,M−2), P_(i,b1,M−1) (8803) as input, performs (post-storage) reordering thereon, and outputs reordered LDPC-CC coded parity 8805. An accumulator 8806 takes the reordered LDPC-CC coded parity 8805 as input, accumulates the input, and outputs accumulated parity 8807. Here, the accumulated parity 8807 is the parity output by the encoder of FIG. 88. When the parity of the ith block is represented as P_(i,0), P_(i,1), P_(i,2), . . . , P_(i,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , P_(i,M−2), P_(i,M−1), then the codeword for the ith block is X_(i,1,0), X_(i,1,1), X_(i,1,2), . . . , X_(i,1,j) (=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,1,M−2), X_(i,1,M−1), P_(i,0), P_(i,1), P_(i,2), . . . , P_(i,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , P_(i,M−2), P_(i,M−1).

Next, the operations of the encoder 8801 for the feed-forward LDPC convolutional codes based on a parity check polynomial and using the tail-biting scheme are described.

The encoder 8801 of the feed-forward LDPC convolutional codes based on a parity check polynomial has a second shift register 8810-2 that takes values output by a first shift register 8810-1 as input. Similarly, a third shift register 8810-3 takes values output by the second shift register 8810-2 as input. Accordingly, a Yth shift register 8810-Y takes values output by a (Y−1)th shift register 8810-(Y−1) shift register as input. Here, Y=2, 3, 4, . . . , L¹⁻², L¹⁻¹, L₁. Each of the first shift register 8810-1 through the L₁ th shift register 8810-L₁ is a register holding a value v_(1,t−i) (i=1, . . . , L₁). Whenever new input arrives, the value held therein is output to a right-neighbour shift register and the value output by a left-neighbour shift register becomes the new held value. For the feed-forward LDPC convolutional codes using the tail-biting scheme, the initial state of the shift registers is holding an initial value of X_(i,1,M−K1) (where K₁=1, . . . , L₁) for the ith block.

Weight multipliers 8810-0 through 8810-L₁ switch values of h₁ ^((m)) to zero or one in accordance with a control signal output from a weight control section 8821 (where m=0, 1, . . . , L₁).

The weight control section 8821 outputs a value of h₁ ^((m)) at a timing based on the parity check polynomial (or the parity check matrix) of the LDPC-CC held thereby, supplying the value to the weight multipliers 8810-0 through 8810-L₁. A modulo 2 adder (i.e., an exclusive OR computer) 8813 sums all results of a mod 2 operation (i.e., the remainder of division by two) performed on the output of the weight multipliers 8810-0 through 8810-L₁ (i.e., the exclusive OR operation), calculates LDPC convolutional coded parity P_(i,b1,j) (8803), and outputs the parity.

The first shift register 8810-1 through the L₁th shift register 8810-L₁ are respectively initialized with a value v_(1,t−i) (i=1, . . . , L₁) for each block. Accordingly, when performing coding on, for example, an i+1th block, the K₁th register is initialized to a value of X_(1+1,1,M−K1). When such a configuration is employed, the encoder 8801 for the feed-forward LDPC convolutional codes based on a parity check polynomial and using the tail-biting scheme is able to perform LDPC-CC coding according to the parity check polynomial on which the feed-forward LDPC convolutional codes are based (or, on the parity check matrix of the feed-forward LDPC convolutional codes based on a parity check polynomial).

When the parity check matrix stored by the weight control section 8812 has a different row order for each row, the LDPC-CC encoder 8801 is a time-varying convolutional code encoder. Particularly, when the changing row order of the parity check matrix changes regularly with periodicity (see the above Embodiments for details), the encoder is a periodic time-varying convolutional code encoder.

The accumulator 8806 of FIG. 88 takes the reordered LDPC-CC coded parity 8805 as input. When processing the ith block, the accumulator 8806 initializes a shift register 8814 with a value of zero. The shift register 8814 is initialized with a value for each block. Accordingly, when coding the i+1th block, for example, shift register 8814 is initialized with a value of zero.

A modulo 2 adder (i.e., an exclusive OR computer) 8815 sums all results of a mod 2 operation (i.e., the remainder of division by two) performed on the output of the shift register 8814 (i.e., the exclusive OR operation), calculates accumulated parity 8807, and outputs the parity. As described later, using the accumulator in this fashion enables the parity portion of the parity check matrix to be taken such that the column weight (the number of ones in each column) is one for one column, and column weight is two for all remaining columns. This provides high error-correction capability when a belief propagation algorithm based on the parity check matrix is used for decoding. The detailed operations of the interleaver 8804 of FIG. 88 are indicated by reference sign 8816. The interleaver, or rather, the accumulation and reordering section 8818, takes the LDPC convolutional coded parity P_(i,b1,0), P_(i,b1,1), P_(i,b1,2), . . . , P_(i,b1,M−3), P_(i,b1,M−2), P_(i,b1,M−1) as input, accumulates the data so input, and performs reordering thereon. Accordingly, the accumularion and reordering section 8818 modifies the order of the output such that P_(i,b1,0), P_(i,b1,1), P_(i,b1,2), . . . , P_(i,b1,M−3), P_(i,b1,M−2), P_(i,b1,M−1) becomes P_(i,b1,254), P_(i,b1,47), . . . , P_(i,b1,M−1), . . . , P_(i,b1,0), . . . .

The concatenate code using an accumulator as indicated in FIG. 88 is discussed in Non-Patent Literature 31 to Non-Patent Literature 35, for example. However, none of the concatenate code described in Non-Patent Literature 31 to Non-Patent Literature 35 use a decoding method employing a belief propagation algorithm based o a parity check matrix applied to high-speed decoding, as described above. Accordingly, difficulties persist in the aforementioned realization of high-speed decoding. In contrast, the concatenate coding of the feed-forward LDPC convolutional codes based on a parity check polynomial and using the tail-biting scheme that is introduced to an interleaver and concatenated with an accumulator as described in the present Embodiment is able to apply decoding that uses a belief propagation algorithm based on the parity check matrix to which high-speed decoding is applied in order to use the feed-forward LDPC convolutional codes based on a parity check polynomial and using the tail-biting scheme to realize high error-correction capability. Also, in Non-Patent Literature 31 to Non-Patent Literature 35, the setting of the concatenate code of the LDPC-CC and the accumulator is not discussed at all.

FIG. 89 illustrates the configuration of an accumulator that differs from the accumulator 8806 of FIG. 88. The accumulator of FIG. 89 may replace the accumulator 8806 of FIG. 88.

The accumulator 8900 of FIG. 89 takes the reordered LDPC convolutional coded parity 8805 (8901) of FIG. 88 as input, accumulates the input, and outputs accumulated parity 8807. In FIG. 89, a second shift register 8902-2 takes values output by a first shift register 8902-1 as input. Similarly, a third shift register 8902-3 takes values output by the second shift register 8902-2 as input. Accordingly, a Yth shift register 8902-Y takes values output by a (Y−1)th shift register 8902-(Y−1) shift register as input. Here, Y=2, 3, 4, . . . , R−2, R−1, R.

Each of the first shift register 8902-1 through the Rth shift register 8902-R is a register holding a value v_(1,t−i) (i=1, . . . , R). Whenever new input arrives, the value held therein is output to a right-neighbour shift register and the value output by a left-neighbour shift register becomes the new held value. When processing an ith block, the accumulator 8900 initializes the first shift register 8902-1 through the Rth shift register 8902-R with a value of zero. That is, the first shift register 8902-1 through the Rth shift register 8902-R are initialized for each block. Accordingly, when coding an i+1th block, for example, the first shift register 8902-1 through the Rth shift register 8902-R are each initialized with a value of zero.

Weight multipliers 8903-1 through 8903-R switch values of h₁ ^((m)) to zero or one in accordance with a control signal output from a weight control section 8904 (where m=1, . . . , R).

The weight control section 8904 outputs a value of h₃ ^((m)) at a timing based on the related-prime partial matrix in the accumulator for the parity check matrix held thereby, supplying the value to the weight multipliers 8903-1 through 8903-R. A modulo 2 adder (i.e., an exclusive OR computer) 8813 sums all results of a mod 2 operation (i.e., the remainder of division by two) performed on the output of the weight multipliers 8903-1 through 8903-R and on the LDPC convolutional coded parity 8805 (8901) from FIG. 88 (i.e., the exclusive OR operation), and outputs the accumulated parity 8807 (8902). The accumulator 9000 of FIG. 90 takes the reordered LDPC convolutional coded parity 8805 (8901) of FIG. 88 as input, accumulates the input, and outputs accumulated parity 8807(8902). In FIG. 90, components operating identically to those of FIG. 89 are given identical reference signs. An accumulator 9000 of FIG. 90 differs from the accumulator 8900 of FIG. 89 in that the value h₁ ⁽¹⁾ from the weight multiplier 8903-1 in FIG. 89 is changed to a fixed value of one. Using the accumulator in this fashion enables the parity portion of the parity check matrix to be taken such that the column weight (the number of ones in each column) is one for one column, and column weight is two or greater for all remaining columns. This provides high error-correction capability when a belief propagation algorithm based on the parity check matrix is used for decoding.

Next, the feed-forward LDPC convolutional codes based on the parity check polynomial and using the tail-biting from the encoder 8801 for the feed-forward LDPC convolutional codes based on a parity check polynomial and using the tail-biting scheme of FIG. 88 are described.

The present document describes time-varying LDPC codes based on a parity check polynomial in detail. Although Embodiment 15 described the feed-forward LDPC convolutional codes based on a parity check polynomial and using the tail-biting scheme, the explanation is here repeated with the addition of an example of feed-forward LDPC convolutional codes based on a parity check polynomial and using the tail-biting scheme for obtaining high error-correction capability with the concatenate code pertaining to the present Embodiment.

First, LDPC-CC based on a parity check polynomial having a coding rate of ½ as described in Non-Patent Literature 20 are described, specifically feed-forward LDPC-CC based on a parity check polynomial having a coding rate of ½.

At time j, information bit X₁ and the parity bit P are respectively represented as X_(1,j) and P_(j). Also, at time j, vector u_(j) is represented as u_(j)=(X_(1,j), P_(j)) Also, the encoded sequence is expressed as u=(u₀, u₁, u_(j),)^(T). Given a delay operator D, the polynomial of the information bit X₁ is represented as X₁(D), and the polynomial of the parity bit P is represented as P(D). Thus, a parity check polynomial satisfying zero is expressed by Math. 145 for the feed-forward LDPC-CC based on the parity check polynomial having a coding rate of ½.

[Math. 145]

(D ^(a) ^(1,1) +D ^(a) ^(1,2) + . . . +D ^(a) ^(1,r1) +1)X ₁(D)+P(D)=0  (Math. 145)

In Math. 145, a_(p,q) (p=1; q=1, 2, . . . , r_(p)) is a natural number. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p), y≠z, a_(p,y)≠a_(p,z) holds. In order to create an LDPC-CC having a time-varying period of m and a coding rate of R=½, a parity check polynomial that satisfies zero based on Math. 145 is prepared. A parity check polynomial that satisfies the ith (i=0, 1, . . . , m−1) zero is expressed as follows in Math. 146.

[Math. 146]

A _(x1,i)(D)X ₁(D)+P(D)=0  (Math. 146)

In Math. 146, the maximum value of D in A_(Xδ,i)(D) is represented as Γ_(Xδ,i). The maximum value of Γ_(Xδ,i) is Γ_(i) (where Γ_(i)=Γ_(X1,i)). The maximum value of Γ_(i) (i=0, 1, . . . , m−1) is Γ. Taking the encoded sequence u into consideration and using Γ, vector h_(i) corresponding to the ith parity check polynomial is expressed as follows in Math. 147.

[Math. 147]

h _(i) =[h _(i,Γ) ,h _(i,Γ−1) , . . . ,h _(i,1) ,h _(i,0])  (Math. 147)

In Math. 147, h_(i,v) (v=0,1, Γ) is a 1×2 vector represented as [α_(i,v,X1), β_(i,v)]. This is because, for the parity check polynomial of Math. 146, α_(i,v,Xw)D^(v)X_(w)(D) and D⁰P(D) (w=1 and α_(i,v,Xw), ε[0,1]). In such cases, the parity check polynomial that satisfies zero for Math. 146 has terms D⁰X₁(D) and D⁰P(D), thus satisfying Math. 148.

[Math. 148]

h _(i,0)=[11]  (Math. 148)

Using Math. 147, the check matrix of the periodic LDPC-CC based on the parity check polynomial having a time-varying period of m and a coding rate of R=½ is expressed as follows in Math. 149.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 149} \right\rbrack & \; \\ {H = \begin{bmatrix} \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \; & \; \\ \; & h_{0,\Gamma} & h_{0,{\Gamma - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,0} & \; & \; & \; & \; & \; & \; & \; \\ \; & \; & h_{1,\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{1,1} & h_{1,0} & \; & \; & \; & \; & \; & \; \\ \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; \\ \; & \; & \; & \; & h_{{m - 1},\Gamma} & h_{{m - 1},{\Gamma - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},0} & \; & \; & \; & \; \\ \; & \; & \; & \; & \; & h_{0,\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,1} & h_{0,0} & \; & \; & \; \\ \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; \\ \; & \; & \; & \; & \; & \; & \; & h_{{m - 1},\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},0} & \; \\ \; & \; & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 149} \right) \end{matrix}$

In Math. 149, Λ(k)=Λ(k+m) is satisfied for ^(∀)k, given an LDPC-CC of unbounded length. Here, Λ(k) corresponds to h_(i) at the kth row of the parity check matrix. Irrespective of whether or not tail-biting is performed, given that a Yth row of the LDPC-CC having a time-varying period of m corresponds to a parity check polynomial that satisfies a zeroth zero of the LDPC-CC having a time-varying period of m, then the (Y+1)th row of the parity check matrix corresponds to a parity check polynomial that satisfies a first zero of the LDPC-CC having a time-varying period of m, the (Y+2)th row of the parity check matrix corresponds to a parity check polynomial that satisfies a second zero of the LDPC-CC having a time-varying period of m, . . . , the (Y+j)th row of the parity check matrix corresponds to a parity check polynomial that satisfies a jth zero of the LDPC-CC having a time-varying period of m (where j=0, 1, 2, 3, . . . , m−3, m−2, m−1), . . . and the (Y+m−1)th row of the parity check matrix corresponds to a parity check polynomial that satisfies a (m−1)th of the LDPC-CC having a time-varying period of m.

Although Math. 145 is handled, above, as a parity check polynomial serving as a base, no limitation to the format of Math. 145 is intended. For example, instead of Math. 145, a parity check polynomial satisfying zero for Math. 150 may be used.′

[Math. 150]

(D ^(a) ^(1,1) +D ^(a) ^(1,2) + . . . +D ^(a) ^(1,r1) )X ₁(D)+P(D)=0  (Math. 150)

In Math. 150, a_(p,q) (p=1; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p), y≠z, a_(p,y) a_(p), holds. In order to obtain high error-correction capability for the concatenate code of the feed-forward LDPC convolutional code based on a parity check polynomial and using the tail-biting scheme that is introduced to an interleaver and concatenated with an accumulator as described in the present Embodiment, r1 is greater than or equal to three in the parity check polynomial that satisfies zero as represented in Math. 145, and r1 is greater than or equal to four in the parity check polynomial that satisfies zero as represented in Math. 150. Accordingly, with reference to Math. 145, a parity check polynomial that satisfies a gth (g=0, 1, . . . , q−1) zero for the feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q used for the concatenate code of the present Embodiment is represented as Math. 151, below (see also Math. 128).

[Math. 151]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,r1)+1)X ₁(D)+P(D)=0  (Math. 151)

In Math. 151, a_(#g,p,q) (p=1; q=1,2, . . . , r_(p)) is a natural number. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p), y≠z, a_(#g,p,y)≠a_(#g,p,z) holds. Then, high error-correction capability is obtained when r1 is three or greater. Accordingly, the following is applicable to the parity check polynomial satisfying zero for the feed-forward periodic parity check polynomial having a time-varying period of q.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 152} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{79mu} {a\mspace{14mu} {zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 152}\text{-}1} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{79mu} {a\mspace{14mu} {first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 152}\text{-}1} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{79mu} {a\mspace{14mu} {second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}} & \left( {{{Math}.\mspace{14mu} 152}\text{-}2} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{79mu} {a\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}} & \left( {{{Math}.\mspace{14mu} 152}\text{-}g} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{79mu} {a\mspace{14mu} \left( {q\text{-}2} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# q\text{-}2},1,1} + D^{{a\# q\text{-}2},1,2} + \ldots + D^{{a\# q\text{-}2},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 152}\text{-}\left( {q\text{-}2} \right)} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{79mu} {a\mspace{14mu} \left( {q\text{-}1} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# q\text{-}1},1,1} + D^{{a\# q\text{-}1},1,2} + \ldots + D^{{a\# q\text{-}1},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 152}\text{-}\left( {q\text{-}1} \right)} \right) \end{matrix}$

Here, r1 is greater than or equal to three. Thus, for Math. 152-0 through Math. 152-(q−1), each solution (i.e., each parity check polynomial that satisfies zero) has four or more terms. For example, in Math. 152-g, the terms are D^(a#g,1,1)X₁(D), D^(a#g,1,2)X₁(D), . . . , D^(a#g,1,r1)X₁(D), and D⁰X(D).

Accordingly, with reference to Math. 151, a parity check polynomial that satisfies a gth (g=0, 1, . . . , q−1) zero for the feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q used for the concatenate code of the present Embodiment is represented as Math. 153, below (see also Math. 128).

[Math. 153]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,r1−1) +D ^(a#g,1,r1))X ₁(D)+P(D)=0  (Math. 153)

In Math. 153, a_(#g,p,q) (p=1; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p), y≠z, a_(#g,p,y)≠a_(#g,p,z) holds. Then, high error-correction capability is obtained when r1 is four or greater. Accordingly, the following is applicable to the parity check polynomial satisfying zero for the feed-forward periodic parity check polynomial having a time-varying period of q.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 154} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{79mu} {a\mspace{14mu} {zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,{r\; 1\text{-}1}} + D^{{a{\# 0}},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 154}\text{-}0} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{79mu} {a\mspace{14mu} {first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,{r\; 1\text{-}1}} + D^{{a{\# 1}},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 154}\text{-}1} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{79mu} {a\mspace{14mu} {second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,{r\; 1\text{-}1}} + D^{{a{\# 2}},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}} & \left( {{{Math}.\mspace{14mu} 154}\text{-}2} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{79mu} {a\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,{r\; 1\text{-}1}} + D^{{a\# g},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}} & \left( {{{Math}.\mspace{14mu} 154}\text{-}g} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{79mu} {a\mspace{14mu} \left( {q\text{-}2} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# q\text{-}2},1,1} + D^{{a\# q\text{-}2},1,2} + \ldots + D^{{a\# q\text{-}2},1,{r\; 1\text{-}1}} + D^{{a\# q\text{-}2},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 154}\text{-}\left( {q\text{-}2} \right)} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{79mu} {a\mspace{14mu} \left( {q\text{-}1} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# q\text{-}1},1,1} + D^{{a\# q\text{-}1},1,2} + \ldots + D^{{a\# q\text{-}1},1,{r\; 1\text{-}1}} + D^{{a\# q\text{-}1},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 154}\text{-}\left( {q\text{-}1} \right)} \right) \end{matrix}$

Here, r1 is greater than or equal to four. Thus, for Math. 154-0 through Math. 154-(q−1), each solution (i.e., each parity check polynomial that satisfies zero) has four or more terms. For example, in Math. 154-g, the terms are D^(a#g,1,1)X₁(D), D^(a#g,1,2)X₁(D), . . . , D^(a#g,1,r1−1)X₁(D), D^(a#g,1,r1)X₁(D). According to the above, for the feed-forward periodic LDPC convolutional codes based on a parity check polynomial having a time-varying period of q and used for the concatenate code pertaining to the present Embodiment, all q parity check polynomials that satisfy any zero have four or more terms X₁(D), and are thus highly likely to realize high error-correction capability. Further, four or more information terms X₁(D) are used to satisfy the conditions presented in Embodiment 1. As thus, the time-varying period is of four or greater. Otherwise, circumstances may arise in which one of the conditions presented in Embodiment 1 is not satisfied, in turn decreasing the probability of high error-correction capability being achieved. Also, as described in Embodiment 6, for example, four or more information terms X₁(D) are used in order to obtain effective results for a large time-varying period when a Tanner graph is drawn. The time-varying period is beneficially an odd number, and other useful conditions are as follows.

(1) Time-varying period q is prime. (2) Time-varying period q is odd; and q has a small number of divisors. (3) Time-varying period q is α×β,

where α and β are odd primes other than one.

(4) Time-varying period q is α^(n),

where, α is an odd prime other than one, and n is an integer greater than or equal to two.

(5) Time-varying period q is α×β×γ,

where α, β, and γ are odd primes other than one.

(6) Time-varying period q is α×β×γ×δ,

where α, β, γ, and δ are odd primes other than one. Given that the results described in Embodiment 6 are achievable for a larger time-varying period q, a time-varying period q that is even is not necessarily incapable of achieving high error-correction capability.

For example, when the time-varying period q is even, the following conditions beneficially hold.

(7) The time-varying period q is 2^(g)×K. Here, K is prime and g is an integer greater than or equal to one. (8) The time-varying period q is 2^(g)×L. Here, L is odd and has a small number of indices, and g is an integer greater than or equal to one. (9) The time-varying period q is 29xα×β.

Here, α and β are odd primes other than one, and g is an integer greater than or equal to one.

(10) The time-varying period q is 2^(g)×α^(n).

Here, α is an odd prime other than one, n is an integer greater than or equal to two, and g is an integer greater than or equal to one.

(11) The time-varying period q is 2^(g)×α×β×γ.

Here, α, β, and γ are odd primes other than one, and g is an integer greater than or equal to one.

(12) The time-varying period q is 2^(g)×α×β×γ×δ.

Here, α, β, γ, and δ are odd primes other than one, and g is an integer greater than or equal to one.

Of course, high error-correction capability is also achievable when the time-varying period q is an odd number that does not satisfy the above conditions (1) through (6). Similarly, high error-correction capability is also achievable when the time-varying period q is an even number that does not satisfy the above conditions (7) through (12).

The following describes a tail-biting scheme for the feed-forward time-varying LDPC-CC based on a parity check polynomial (e.g., the parity check polynomial of Math. 151).

[Tail-Biting Scheme]

A parity check polynomial that satisfies a gth (g=0, 1, . . . , q−1) zero for the feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q used for the concatenate code of the present Embodiment is represented as Math. 155, below (see also Math. 128).

[Math. 155]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,r1)+1)X ₁(D)+P(D)=0  (Math. 155)

In Math. 155, a_(#g,p,q) (p=1; q=1, 2, . . . , r_(p)) is a natural number. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p), y≠z, a_(#g,p,y)≠a_(#g,p,z) holds. Here, r1 is equal to or greater than three. Taking Math. 30, Math. 34, and Math. 47 into similar consideration, and taking H_(g) to be a sub-matrix (vector) corresponding to Math. 155, a gth sub-matrix is represented as Math. 156, below.

[Math. 156]

H _(g) ={H′ _(g),11}  (Math. 156)

In Math. 156, the two consecutive ones correspond to the terms D⁰X₁(D)=X₁(D) and D⁰P(D)=P(D) from the polynomials of Math. 155. Here, parity check matrix H is represented as shown in FIG. 91. As shown in FIG. 91, a configuration is employed in which a sub-matrix is shifted two columns to the right between an ith row and an (i+1)th row in parity check matrix H (see FIG. 91). Thus, the data at time k for information X₁ and parity P are respectively given as X_(1,k) and Pk. Accordingly, the transmission vector u is represented as u=(X_(1,0), P₀, X_(1,1), P₁, . . . , X_(1,k), P_(k), . . . )^(T), where Hu=0 (the zero in Hu=0 signifies that all elements of the vector are zeroes) holds.

In Non-Patent Literature 12, a parity check matrix is described for when tail-biting is employed. The parity check matrix is as given by Math. 135. In Math. 135, H is the parity check matrix and H^(T) is the syndrome former. Also, H^(T) _(i)(t) (i=0, 1, . . . , M_(s)) is a c×(c−b) sub-matrix, and M_(s) is the memory size.

FIG. 91 and Math. 135 show that, for the LDPC-CC having a coding rate of ½ and a time-varying period of q that is based on the parity check polynomial, the parity check matrix H required for decoding that obtains greater error-correction capability strongly prefers the following conditions.

<Condition #17-1>

The number of rows in the parity check matrix is a multiple of q.

Accordingly, the number of columns in the parity check matrix is a multiple of 2×q. Here, the (for example) log-likelihood ratio needed upon decoding is the log-likelihood ratio of the bit portion that is a multiple of 2×q.

Here, the parity check polynomial that satisfies zero for the LDPC-CC having a coding rate of ½ and a time-varying period of q required by Condition #17-1 is not limited to that of Math. 155, but may also be the periodic time-varying LDPC-CC based on Math. 153.

Such a periodic time-varying period LDPC-CC is a type of feed-forward convolutional code. Thus, a coding scheme given by Non-Patent Literature 10 or Non-Patent Literature 11 can be applied as the coding scheme used when tail-biting is used. The procedure is as shown below.

<Procedure 17-1>

For example, the periodic time-varying LDPC-CC defined by Math. 155 has a term P(D) expressed as follows.

[Math. 157]

P(D)=(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,r1)+1)X ₁(D)  (Math. 157)

Then, Math. 157 is represented as follows.

[Math. 158]

P[i]=X ₁ [i]⊕X ₁ └i−a _(#g,1,1) ┘⊕X ₁ └i−a _(#g,1,2) ┘⊕ . . . ⊕X ₁ └i−a _(#g,1,r1)┘  (Math. 158)

where the symbol ⊕ represents the exclusive OR operator.

The above description applies to a periodic time-varying LDPC-CC having a coding rate of ½ and a feed-forward period of q, based on the parity check polynomial when tail-biting is applied, where the information length per block is M bits. As such, each block of the periodic time-varying LDPC-CC with a feed-forward period of q, based on the parity check polynomial when tail-biting is applied, has parity of M bits. Accordingly, the codeword u_(j) for a jth block is represented as u_(j)=(X_(j,1,0), P_(j,0), X_(j,1,1), P_(j,1), . . . , X_(j,1,i), P_(j,i), . . . , X_(j,1,M−2), P_(j,M−2), X_(j,1,M−1), P_(j,M−1)). When i=0, 1, 2, . . . , M−2, M−1, the term X_(j,1,i) represents the information X₁ in the jth block at time i, and the term P_(j,i) represents the parity P in the jth block at time i for the periodic time-varying LDPC-CC having a feed-forward period of q based on the parity check polynomial when tail-biting is performed.

Accordingly, for the jth block at time i, when i%q=k (% represents the modulo operator), parity is calculated in Math. 157 and Math. 158 for the jth block at time i when g=k. Accordingly, when i%q=k, the parity P_(j,i) for the jth block at time i is determined using the following.

[Math. 159]

P[i]=X ₁ [i]⊕X ₁ [i−a _(#k,1,1) ]⊕X ₁ [i−a _(#k,1,2) ]⊕ . . . ⊕X ₁ [i−a _(#k,1,r1])  (Math. 159)

where the symbol ⊕ represents the exclusive OR operator.

Accordingly, when i%q=k, the parity P_(j,i) for the jth block at time i is represented as follows.

[Math. 160]

P _(j,i) =X _(j,1,i) ⊕X _(j,1,Z1) ⊕X _(j,1,Z2) ⊕ . . . ⊕X _(j,1,Zr1)  (Math. 160)

Here,

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 161} \right\rbrack & \; \\ {Z_{1} = {i - a_{{\# k},1,1}}} & \left( {{{Math}.\mspace{14mu} 161}\text{-}1} \right) \\ {{Z_{2} = {i - a_{{\# k},1,2}}}\vdots} & \left( {{{Math}.\mspace{14mu} 161}\text{-}2} \right) \\ {{Z_{s} = {i - {a_{{\# k},1,s}\left( {{{{where}\mspace{14mu} s} = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}}\vdots} & \left( {{{Math}.\mspace{14mu} 161}\text{-}s} \right) \\ {Z_{r\; 1} = {i - a_{{\# k},1,{r\; 1}}}} & \left( {{{Math}.\mspace{14mu} 161}\text{-}r_{1}} \right) \end{matrix}$

Incidentally, given that tail-biting is used, the parity P_(j,i) for the jth block at time i is determinable using the set of formulae of Math. 159 (or Math. 160) and Math. 162.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 162} \right\rbrack & \; \\ {{{{When}\mspace{14mu} Z_{1}} \geq {0\text{:}}}{Z_{1} = {i - a_{{\# k},1,1}}}} & \left( {{{Math}.\mspace{14mu} 162}\text{-}1\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{1}} < {0\text{:}}}{Z_{1} = {i - a_{{\# k},1,1} + M}}} & \left( {{{Math}.\mspace{14mu} 162}\text{-}1\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{2}} \geq {0\text{:}}}{Z_{2} = {i - a_{{\# k},1,2}}}} & \left( {{{Math}.\mspace{14mu} 162}\text{-}2\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{2}} < {0\text{:}}}{Z_{2} = {i - a_{{\# k},1,2} + M}}\vdots} & \left( {{{Math}.\mspace{14mu} 162}\text{-}2\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{s}} \geq {0\text{:}}}{Z_{s} = {i - {a_{{\# k},1,s}\left( {{{{where}\mspace{14mu} s} = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}}} & \left( {{{Math}.\mspace{14mu} 162}\text{-}s\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{s}} < {0\text{:}}}{Z_{s} = {i - a_{{\# k},1,s} + {M\left( {{{{where}\mspace{14mu} s} = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}}\vdots} & \left( {{{Math}.\mspace{14mu} 162}\text{-}s\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{r\; 1}} \geq {0\text{:}}}{Z_{r\; 1} = {i - a_{{\# k},1,{r\; 1}}}}} & \left( {{{Math}.\mspace{14mu} 162}\text{-}r_{1}\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{r\; 1}} < {0\text{:}}}{Z_{r\; 1} = {i - a_{{\# k},1,{r\; 1}} + M}}} & \left( {{{Math}.\mspace{14mu} 162}\text{-}r_{1}\text{-}2} \right) \end{matrix}$

<Procedure 17-1′>

In Math. 155, a periodic time-varying LDPC-CC having a period of q is defined so as to differ from the periodic time-varying LDPC-CC having a period of q from Math. 153. The tail-biting is also described for Math. 153. The term P(D) is represented as follows.

[Math. 163]

P(D)=(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,r1−1) +D ^(a#g,1,r1))X ₁(D)  (Math. 163)

Thus, Math. 163 is represented as follows.

[Math. 164]

P[i]=X ₁ └i−a _(#g,1,1) ┘⊕X ₁ └i−a _(#g,1,2) ┘⊕ . . . ⊕X ₁ [i−a _(#g,1,r1])  (Math. 164)

where the symbol ⊕ represents the exclusive OR operator.

Here, a periodic time-varying LDPC-CC has a coding rate of ½ and a feed-forward period of q, based on the parity check polynomial when tail-biting is applied, where the information length per block is M bits. As such, each block of the periodic time-varying LDPC-CC with a feed-forward period of q, based on the parity check polynomial when tail-biting is applied, has parity of M bits. Accordingly, the codeword uj for a jth block is represented as u_(j)=(X_(j,1,0), P_(j,0), X_(j,1,1), P_(j,1), . . . , X_(j,1,i), P_(j,i), . . . , X_(j,1,M−2), P_(j,M−2), X_(j,1,M−1), P_(j,M−1)). When i=0, 1, 2, . . . , M−2, M−1, the term X_(j,1,i) represents the information X₁ in the jth block at time i, and the term P_(j,i) represents the parity P in the jth block at time i for the periodic time-varying LDPC-CC having a feed-forward period of q based on the parity check polynomial when tail-biting is performed.

Accordingly, for the jth block at time i, when i%q=k (% represents the modulo operator), parity is calculated in Math. 163 and Math. 164 for the jth block at time i when g=k. Accordingly, when i%q=k, the parity P_(j,i) for the jth block at time i is determined using the following.

[Math. 165]

P[i]=X ₁ [i−a _(#k,1,1) ]⊕X ₁ [i−a _(#k,1,2) ]⊕ . . . ⊕X ₁ [i−a _(#k,1,r1])  (Math. 156)

where the symbol ⊕ represents the exclusive OR operator.

Accordingly, when i%q=k, the parity P_(j,i) for the jth block at time i is represented as follows.

[Math. 166]

P _(j,i) =X _(j,1,Z1) ⊕X _(j,1,Z2) ⊕ . . . ⊕X _(j,1,Zr1)  (Math. 166)

Here,

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 167} \right\rbrack & \; \\ {Z_{1} = {i - a_{{\# k},1,1}}} & \left( {{{Math}.\mspace{14mu} 167}\text{-}1} \right) \\ {{Z_{2} = {i - a_{{\# k},1,2}}}\vdots} & \left( {{{Math}.\mspace{14mu} 167}\text{-}2} \right) \\ {{Z_{s} = {i - {a_{{\# k},1,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}}\vdots} & \left( {{{Math}.\mspace{14mu} 167}\text{-}s} \right) \\ {Z_{r\; 1} = {i - a_{{\# k},1,{r\; 1}}}} & \left( {{{Math}.\mspace{14mu} 167}\text{-}r_{1}} \right) \end{matrix}$

Incidentally, given that tail-biting is used, the parity P_(j,i) for the jth block at time i is determinable using the set of formulae of Math. 195 (or Math. 166) and Math. 168.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 168} \right\rbrack & \; \\ {{{{When}\mspace{14mu} Z_{1}} \geq {0\text{:}}}{Z_{1} = {i - a_{{\# k},1,1}}}} & \left( {{{Math}.\mspace{14mu} 168}\text{-}1\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{1}} < {0\text{:}}}{Z_{1} = {i - a_{{\# k},1,1} + M}}} & \left( {{{Math}.\mspace{14mu} 168}\text{-}1\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{2}} \geq {0\text{:}}}{Z_{2} = {i - a_{{\# k},1,2}}}} & \left( {{{Math}.\mspace{14mu} 168}\text{-}2\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{2}} < {0\text{:}}}{Z_{2} = {i - a_{{\# k},1,2} + M}}\vdots} & \left( {{{Math}.\mspace{14mu} 168}\text{-}2\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{s}} \geq {0\text{:}}}{Z_{s} = {i - {a_{{\# k},1,s}\left( {{{{where}\mspace{14mu} s} = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}}} & \left( {{{Math}.\mspace{14mu} 168}\text{-}s\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{s}} < {0\text{:}}}{Z_{s} = {i - a_{{\# k},1,s} + {M\left( {{{{where}\mspace{14mu} s} = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}}\vdots} & \left( {{{Math}.\mspace{14mu} 168}\text{-}s\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{r\; 1}} \geq {0\text{:}}}{Z_{r\; 1} = {i - a_{{\# k},1,{r\; 1}}}}} & \left( {{{Math}.\mspace{14mu} 168}\text{-}r_{1}\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{r\; 1}} < {0\text{:}}}{Z_{r\; 1} = {i - a_{{\# k},1,{r\; 1}} + M}}} & \left( {{{Math}.\mspace{14mu} 168}\text{-}r_{1}\text{-}2} \right) \end{matrix}$

Next, a parity check matrix is described for concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial with an accumulator where the tail-biting scheme described in the present Embodiment is used.

Related to the above, the parity check matrix for the feed-forward LDPC convolutional codes based on a parity check polynomial and using the tail-biting scheme are described first.

For example, when the tail-biting scheme is used for an LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ as defined by Math. 155, the information bit X₁ and the parity bit P for a jth block at time i are respectively expressed as X_(j,1,i) and P_(j,i). Then, in order to satisfy Condition #17-1, tail-biting is performed such that i=1, 2, 3, . . . , q, . . . , q×N−q+1, q×N−q+2, q×N−q+3, . . . , q×N.

Here, N is a natural number, the transmission sequence (codeword) u_(j) for the jth block is u_(j)=(X_(j,1,1), P_(j,1), X_(j,1,2), P₂, . . . , X_(j,1,k), P_(j,k), . . . , X_(j,1,q×N), P_(j,q×N))^(T), and Hu_(j)=0 (the zero in Hu=0 signifies that all elements of the vector are zeroes; i.e., that for all k (k being an integer greater than or equal to one and less than or equal to q×N), the kth row has a value of zero) all hold. Here, H is the parity check matrix for the LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed.

The configuration of the parity check matrix for the LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed is described below with reference to FIGS. 92 and 93.

Let H_(g) be a sub-matrix (a vector) corresponding to Math. 155. As such, a gth sub-matrix is expressible as described earlier using Math. 156

FIG. 92 gives a parity check matrix in the vicinity of time q×N, corresponding to the above-defined transmission sequence u_(j) within the parity check matrix for the LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed. As shown in FIG. 92, a configuration is employed in which a sub-matrix is shifted two columns to the right between an ith row and an (i+1)th row in parity check matrix H (see FIG. 92).

Also, in FIG. 92, the q×Nth (i.e., the last) row of the parity check matrix has reference sign 9201, and corresponds to the (q−1)th parity check polynomial that satisfies zero in order to satisfy Condition #17-1. The (q×N−1)th row of the parity check matrix has reference sign 9202, and corresponds to the (q−2)th parity check polynomial that satisfies zero in order to satisfy Condition #17-1. Reference sign 9203 represents a column group corresponding to time q×N. Column group 9203 is arranged in the order X_(j,1,q×N), P_(j,q×N). Reference sign 9204 represents a column group corresponding to time q×N−1. Column group 9204 is arranged in the order X_(j,1,q×N−1), P_(j,q×N−1.)

Next, FIG. 93 indicates a parity check matrix in the vicinity of times q×N−1, q×N, 1, 2, within the parity check matrix corresponding to a transmission sequence that has been reordered, specifically u_(j)=( . . . , X_(j,1,q×N−1), P_(j,q×N−1), X_(j,1,q×N), P_(j,q×) _(N), X_(j,1,1), P_(j,1), X_(j,1,2), P_(j,2), . . . )^(T). The portion of the parity check matrix given in FIG. 93 is a characteristic portion thereof when tail-biting is performed. As shown in FIG. 93, a configuration is employed in which a sub-matrix is shifted two columns to the right between an ith row and an(i+1)th row in parity check matrix H (see FIG. 93).

Also, in FIG. 93, when expressed as a parity check matrix like that of FIG. 92. reference sign 9305 corresponds to the (q×N×2)th column and, when similarly expressed as a parity check matrix like that of FIG. 92, reference sign 9306 corresponds to the first column.

Reference sign 9307 represents a column group corresponding to time q×N−1. Column group 9307 is arranged in the order X_(j,1,q×N−1), P_(j,q×N−1). Reference sign 9308 represents a column group corresponding to time q×N. Column group 9308 is arranged in the order X_(j,1,q×N), P_(j,q×N). Reference sign 9309 represents a column group corresponding to time 1. Column group 9309 is arranged in the order X_(j,1,1), P_(j,1). Reference sign 9310 represents a column group corresponding to time 2. Column group 9310 is arranged in the order X_(j,1,2), P_(j,2).

When expressed as a parity check matrix like that of FIG. 92, reference sign 9311 corresponds to the (q×N)th row, and when similarly expressed as a parity check matrix like that of FIG. 92, reference sign 9312 corresponds to the first row. In FIG. 93, the characteristic portion of the parity check matrix on which tail-biting is performed is the portion left of reference sign 9313 and below reference sign 9314.

When expressed as a parity check matrix like that of FIG. 92, and when Condition #17-1 is satisfied, the rows begin with a row corresponding to a parity check polynomial that satisfies a zeroth zero, and the rows end with a parity check polynomial that satisfies a (q−1)th zero. This point is critical for obtaining better error-correction capability. In practice, the time-varying LDPC-CC is designed such that the code thereof produces a small number of cycles of length each being of a short length on a Tanner graph. As the description of FIG. 93 makes clear, in order to ensure a small number of cycles of length each being of a short length on a Tanner graph when tail-biting is performed, maintaining conditions like those of FIG. 93, i.e., maintaining Condition #17-1, is critical.

For ease of explanation, the above description is given for a parity check matrix of an LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed, as defined in Math. 155. However, a parity check matrix may be similarly generated for the LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed as defined in Math. 153.

The above explanation is given for a configuration method of a parity check matrix of an LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed, as defined in Math. 155. However, the following explanation instead pertains to a parity check matrix of concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial where the tail-biting scheme is used. A parity check matrix is described that is equivalent to the parity check matrix of the LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed as described above.

In the above explanation, the configuration of a parity check matrix H is described for an LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed, where the transmission sequence u_(j) for the jth block is u_(j)=(X_(j,1,1), P_(j,1), X_(j,1,2), P_(j,2), . . . , X_(j,1,k), P_(j,k), . . . , X_(j,1,q×N), P_(j,q×N))^(T), and Hu_(j)=0 (the zero in Hu=0 signifies that all elements of the vector are zeroes; i.e., that for all k (k being an integer greater than or equal to one and less than or equal to q×N), the kth row has a value of zero). However, the following explanation pertains to the configuration of a parity check matrix H_(m) for an LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed, where the transmission sequence for a jth block s_(j) is s_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,q×N), P_(j,1), P_(j,2), . . . , P_(j,k), . . . , P_(j,q×N))^(T) and H_(m)s_(j)=0 (the zero in H_(m)s_(j)=0 signifies that all elements of the vector are zeroes; i.e., that for all k (k being an integer greater than or equal to one and less than or equal to q×N) the kth row has a value of zero). When tail-biting is performed and each block is made up of M information bits X₁ and M parity bits P (for a coding rate of ½), then as shown in FIG. 94, the parity check matrix is H_(m)=[H_(x), H_(p)] for the LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed. (As described above, although high error-correction capability is achievable when each block is made up of M=q×N information bits X and M=q×N parity bits, this is not intended as an absolute limitation). Here, the transmission sequence (codeword) s_(j) for the jth block is s_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . X_(j,1,M), P_(j,1), P_(j,2), . . . , P_(j,k), . . . , P_(j,M))^(T), such that H_(x) is a partial matrix pertaining to information X₁ and H_(p) is a partial matrix pertaining to parity P. As shown in FIG. 94, the parity check matrix H_(m) has M rows and 2×M columns, the partial matrix H, pertaining to information X₁ has M rows and M columns, and the partial matrix H_(p) pertaining toparity P has M rows an M columns (here, H_(m)s_(j)=0 (the zero in H_(m)s_(j)=O signifies that all elements of the vector are zeroes)).

FIG. 95 indicates the configuration of the partial matrix H_(p) pertaining to parity P for the parity check matrix H_(m) for the LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed. As shown in FIG. 95, the partial matrix H_(P) pertaining to parity P has i rows and i columns (i being an integer greater than or equal to one and less than or equal to M (i=1, 2, 3, . . . , M−1, M) having elements that are ones while all other elements are zeroes).

The above is represented using another expression. For the LDPC-CC based on the parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed, the element at row i, column j of the partial matrix H_(p) pertaining to the parity P within the parity check matrix H_(m) is represented as H_(p,comp)[i][j](where i and j are integers greater than or equal to one and less then or equal to M (i, j=1, 2, 3, . . . , M−1, M). The following logically follows.

[Math. 169]

H _(p,comp) [i][i]=1 for ∀i;i=1,2,3, . . . ,M−1,M  (Math. 169)

(where i is an integer greater than or equal to one and less then or equal to M (i=1, 2, 3, . . . , M−1, M), the above relation holding for all conforming i)

[Math. 170]

H _(p,comp) [i][j]=0 for ∀i∀j;i=1,2,3, . . . ,M−1,M  (Math. 170)

(where i and j are integers greater than or equal to one and less then or equal to M (i, j=1, 2, 3, . . . , M−1, M), the above relation holding for all conforming and j)

For the partial matrix H_(p) pertaining to the parity P from FIG. 95, as shown,

for the feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q, the first row is a vector of a portion pertaining to the parity P of the zeroth (i.e., g=0) parity check polynomial that satisfies zero for the parity check polynomial (of Math. 153 or Math. 155),

for the feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q, the second row is a vector of a portion pertaining to the parity P of the first (i.e., g=1) parity check polynomial that satisfies zero for the parity check polynomial (of Math. 153 or Math. 155),

for the feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q, the (q+1)th row is a vector of a portion pertaining to the parity P of the qth (i.e., g=q) parity check polynomial that satisfies zero for the parity check polynomial (of Math. 153 or Math. 155),

for the feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q, the (q+2)th row is a vector of a portion pertaining to the parity P of the zeroth (i.e., g=0) parity check polynomial that satisfies zero for the parity check polynomial (of Math. 153 or Math. 155), and so on.

FIG. 96 indicates the configuration of the partial matrix H_(x) pertaining to information X₁ for the parity check matrix H_(m) for the LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed. First, the partial matrix H_(x) pertaining to information X₁ is described using an example in which a parity check polynomial satisfies zero as per Math. 155 for a feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q.

For the partial matrix H_(x) pertaining to the information X₁ from FIG. 96, as shown

for the feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q, the first row is a vector of a portion pertaining to the information X₁ of the zeroth (i.e., g=0) parity check polynomial that satisfies zero for the parity check polynomial (of Math. 153 or Math. 155),

for the feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q, the second row is a vector of a portion pertaining to the information X₁ of the first (i.e., g=1) parity check polynomial that satisfies zero for the parity check polynomial (of Math. 153 or Math. 155),

for the feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q, the (q+1)th row is a vector of a portion pertaining to the information X₁ of the qth (i.e., g=q) parity check polynomial that satisfies zero for the parity check polynomial (of Math. 153 or Math. 155),

for the feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q, the (q+2)th row is a vector of a portion pertaining to the information X₁ of the zeroth (i.e., g=0) parity check polynomial that satisfies zero for the parity check polynomial (of Math. 153 or Math. 155),

and so on. Accordingly, when the sth row of the partial matrix H_(x) pertaining to information X₁ from FIG. 96 is (s−1) %q=k (where % is the modulo operator), then for the feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q, the sth row is a vector of a portion pertaining to information X₁ for the kth parity check polynomial that satisfies zero (see Math. 153 or Math. 155).

Next, the values of the elements making up the partial matrix H_(x) pertaining to information X₁ for the parity check matrix H_(m) for the LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed are described.

For the LDPC-CC based on the parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed, the element at row i, column j of the partial matrix H_(x) pertaining to information X₁ within the parity check matrix H_(m) is represented as H_(x,comp)[i][j](where i and j are integers greater than or equal to one and less then or equal to M (i, j=1, 2, 3, . . . , M−1, M).

For the feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q, when a parity check polynomial that satisfies zero also satisfies Math. 155, and (s−1)%q=k (where % is the modulo operator) for an sth row of the partial matrix H_(x) pertaining to information X₁, the parity check polynomial corresponding to the sth row of the partial matrix H_(x) pertaining to information X₁ is expressed as follows.

[Math. 171]

(D ^(a#k,1,1) +D ^(a#k,1,2) + . . . +D ^(a#k,1,r1)+1)X ₁(D)+P(D)=0  (Math. 171)

Accordingly, when the sth row of the partial matrix H_(x) pertaining to information X₁ has elements satisfying one,

[Math. 172]

H _(x,comp) [s][s]=1  (Math. 172)

and

[Math. 173]

when s−a _(#k,1,y)≧1:

H _(x,comp) [s]└s−a _(#k,1,y)┘=1  (Math. 173-1)

when s−a _(#k,1,y)<1:

H _(x,comp) [s]└s−a _(#k,1,y) +M┘=1  (Math. 173-2)

(where y=1, 2, . . . r₁−1, r₁).

Then, elements of H_(x,comp)[s][j] in the sth row of the partial matrix H_(x) pertaining to information X₁ other than those given by Math. 172, Math. 173-1, and Math. 173-2 are zeroes. Math. 172 gives elements corresponding to D⁰X₁(D) (=X₁(D)) in Math. 171 (corresponding to the ones in the diagonal component of the matrix from FIG. 96), while the sorting of Math. 173-1 and Math. 173-2 applies for rows 1 through M and columns I through M of the partial matrix H_(x) pertaining to the information X₁.

The above description applies to the configuration of a parity check matrix for parity check polynomial from Math. 155. However, the following describes a parity check matrix that satisfies zero for the parity check polynomial of Math. 153 for feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q.

As described above, the parity check matrix H_(m) for an LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed that satisfies the parity check polynomial of Math. 153 is as given by FIG. 94, and the configuration of the partial matrix H_(p) pertaining to the parity P of such a parity check matrix H_(m) is as given by FIG. 95 and also described above.

For the feed-forward periodic LDPC convolutional code based on a parity check polynomial having a time-varying period of q, when a parity check polynomial that satisfies zero also satisfies Math. 153, and (s−1)%q=k (where % is the modulo operator) for an sth row of the partial matrix H_(x) pertaining to information X₁, the parity check polynomial corresponding to the sth row of the partial matrix H_(x) pertaining to information X₁ is expressed as follows.

[Math. 174]

(D ^(a#k,1,1) +D ^(a#k,1,2) + . . . +D ^(a#k,1,r1))X ₁(D)+P(D)=0  (Math. 174)

Accordingly, when the sth row of the partial matrix H_(t) pertaining to information X₁ has elements satisfying one,

[Math. 175]

when s−a _(#k,1,y)≧1:

H _(x,comp) [s]└s−a _(#k,1,y)┘=1  (Math. 175-1)

when s−a _(#k,1,y)≦1:

H _(x,comp) [s]└s−a _(#k,1,y) +M┘=1  (Math. 175-2)

(where y=1, 2, . . . r₁−1, r₁).

Then, elements of H_(x,comp) [s][j] in the sth row of the partial matrix H_(x) pertaining to information X₁ other than those given by Math. 173-1, and Math. 173-2 are zeroes.

Next, a parity check matrix is described for concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial where the tail-biting scheme described in the present Embodiment is used.

In the concatenate code, concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial where the tail-biting scheme is used, each block is made up of M bits of information X₁ and M bits of parity Pc (where the parity Pc represents the parity of the aforementioned concatenate code) (given a coding rate of ½). As such, the M bits of information X₁ for the jth block are expressed as X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), and the M blocks of parity Pc are expressed as Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M) (accordingly, k=1, 2, 3, . . . , M−1, M). Thus, the transmission sequence is expressed as v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . X_(j,1,M), PC_(j,1), P_(j,2), . . . , PC_(j,k), . . . , PC_(j,M))^(T). Thus, a parity check matrix H_(cm) is described by FIG. 97, or alternatively as H_(cm)=[H_(cx), H_(cp)] for concatenate code, concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial where the tail-biting scheme described in the present Embodiment is used. (Here, H_(cm)v_(j)=0. The zero in H_(cm)v_(j)=0 signifies that all elements of the vector are zeroes; i.e., that for all k (k being an integer greater than or equal to one and less than or equal to M) the kth row has a value of zero). Here, H_(cx) is a partial matrix pertaining to the information X₁ of the parity check matrix H_(cm) for the above-described concatenate code, H_(cp) is a partial matrix pertaining to the parity Pc (where the parity Pc signifies the parity of the above-described concatenate code) of the parity check matrix H_(cm) for the above-described concatenate code, and as shown in FIG. 97, the parity check matrix H_(cm) has M rows and 2×M columns, the partial matrix H_(cx) pertaining to the X₁ has M rows and M columns, and the partial matrix H_(cp) pertaining to the parity Pc also has M rows and M columns.

FIG. 98 illustrates the relationship between the partial matrix H_(x) pertaining to information X₁ for the parity check matrix H_(m) of the LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed (9801 in FIG. 98) and the partial matrix H_(cx) pertaining to information X₁ in the parity check matrix H_(cm) for the concatenate code concatenating an accumulator, via an interleaver, with to introduce feed-forward LDPC convolutional codes based on a parity check polynomial where the tail-biting scheme is used (9802 in FIG. 98).

The configuration of the partial matrix H_(x) pertaining to information X₁ for the parity check matrix H_(m) for the LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed is as described above.

For the partial matrix H (9801 in FIG. 9801) pertaining to information X₁ for the parity check matrix H_(m) for the LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed,

h_(x1,1) is a vector extractable from the first row only, h_(x1,2) is a vector extractable from the second row only, h_(x1,3) is a vector extractable from the third row only, . . . h_(x1,k) (k = 1, 2, 3, M−1, M) is a vector extractable from the kth row only, . . . h_(x1,M−1) is a vector extractable from the (M−1)th row only, and h_(x1,M) is a vector extractable from the Mth row only,

such that the partial matrix H_(x) (9801 in FIG. 9801) pertaining to information X₁ for the parity check matrix H_(m) for the LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed is expressed as follows.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 176} \right\rbrack & \; \\ {H_{x} = {\begin{bmatrix} h_{{x\; 1},1} \\ h_{{x\; 1},2} \\ \vdots \\ h_{{x\; 1},{M - 1}} \\ h_{{x\; 1},M} \end{bmatrix}.}} & \left( {{Math}.\mspace{14mu} 176} \right) \end{matrix}$

In FIG. 88, the tail-biting scheme is used to introduce feed-forward LDPC convolutional codes based on a parity check polynomial to an interleaver. Accordingly, the partial matrix H_(cx) pertaining to information X₁ in the parity check matrix H_(cm) for the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial where the tail-biting scheme is used (9802 in FIG. 98) is generated from the partial matrix H_(x) pertaining to information X₁ for the parity check matrix H_(m) of the LDPC-CC based on a parity check polynomial having a time-varying period of q and a coding rate of ½ when tail-biting is performed (9801 in FIG. 98) as partial matrix H, (9802 in FIG. 98) pertaining to the information X₁ with interleaving applied thereto after coding of the feed-forward LDPC convolutional codes based on the parity check polynomial when the tail-biting scheme is used.

As shown in FIG. 98, for the partial matrix H_(cx) 9802 in FIG. 98) pertaining to the information X_(1 of the) parity check matrix H_(cm) for the concatenate code obtained when the feed-forward LDPC-CC based on a parity check polynomial having a coding rate of ½ when tail-biting is performed is introduced into an interleaver and concatenation is performed with an accumulator,

hc_(x1,1) is a vector extractable from the first row only, hc_(x1,2) is a vector extractable from the second row only, hc_(x1,3) is a vector extractable from the third row only, . . . hc_(x1,k) (k = 1, 2, 3, M−1, M) is a vector extractable from the kth row only, . . . hc_(x1,M−1) is a vector extractable from the (M−1)th row only, and hc_(x1,M) is a vector extractable from the Mth row only,

thus, the partial matrix H_(cx) (9802 in FIG. 98) pertaining to the information X₁ of the parity check matrix H_(cm) for the concatenate code obtained when the feed-forward LDPC-CC based on a parity check polynomial having a coding rate of ½ when tail-biting is performed is introduced into an interleaver and concatenation is performed with an accumulator is expressed as follows.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 177} \right\rbrack & \; \\ {H_{cx} = {\begin{bmatrix} {hc}_{{x\; 1},1} \\ {hc}_{{x\; 1},2} \\ \vdots \\ {hc}_{{x\; 1},{M - 1}} \\ {hc}_{{x\; 1},M} \end{bmatrix}.}} & \left( {{Math}.\mspace{14mu} 177} \right) \end{matrix}$

As such, a vector hc_(x1,k) (k=1, 2, 3, M−1, M) extractible from only the kth row of the partial matrix H_(cx) (9802 in FIG. 98) pertaining to the information X₁ of the parity check matrix H_(cm) for the concatenate code obtained when the feed-forward LDPC convolutional code based on a parity check polynomial having a coding rate of ½ when tail-biting is performed is introduced into an interleaver and concatenation is performed with an accumulator is expressed as any h_(x1,i) (i=1, 2, 3, M−1, M). (Put otherwise, h_(x1,i) (i=1, 2, 3, . . . , M−1, M) is always arranged as some hc_(x1,k) that is a vector extractable from the interleaver from a kth row only.) In FIG. 98, for example, the vector hc_(x1,1) extractable from the first row only is such that hc_(x1,1)=h_(x1,47), and the vector hc_(x1,M) extractable from the Mth row only is such that hc_(x1,M)=h_(x1,21). Given that this is only a matter of providing the interleaver,

[Math. 178]

h _(x1,i) ≠h _(x1,j) for ∀i∀j;i≠j;i,j=1,2, . . . ,M−2,M−1,M  (Math. 178)

(where i,j=1, 2, . . . , M−2, M−1, M, i≠j for all i and j)

Accordingly,

each term of the sequence h_(x1,1), h_(x1,2), h_(x1,3), . . . , h_(x1,M−2), h_(x1,M−1), h_(x1,M) appears once in a vector hc_(x1,k) (k=1, 2, 3, M−1, M) extractable only from the kth row.

That is to say,

a single k satisfies hc_(x1,k) = h_(x1,1,) a single k satisfies hc_(x1,k) = h_(x1,2) , a single k satisfies hc_(x1,k) = h_(x1,3) , . . . a single k satisfies hc_(x1,k) = h_(x1,j), . . . a single k satisfies hc_(x1,k) = h_(x1,M−2), a single k satisfies hc_(x1,k) = h_(x1,M−1), and a single k satisfies hc_(x1,k) = h_(x1,M).

FIG. 99 illustrates the configuration of a partial matrix H_(cp) pertaining to the parity Pc (where the parity Pc signifies the parity of the above-described concatenate code) for the parity check matrix H_(cm)=[H_(cx), H_(cp)] of concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, and where the partial matrix H_(cp) pertaining to the parity Pc has M rows and M columns. The element at row i and column j of the partial matrix H_(cp) pertaining to the parity Pc is expressed as H_(cp,comp)[i][j](where i and j are integers greater than or equal to one and less than or equal to M (i, j,=1, 2, 3, . . . , M−1, M)). The following logically follows.

[Math. 179]

When i=1:

H _(cp,comp)[1][1]=1  (Math. 179-1)

H _(cp,comp)[1][j]=0 for ∀j;j=2,3, . . . ,M−1,M  (Math. 179-2)

(where j is an integer greater than or equal to two and less than or equal to M (j=2, 3, . . . , M−1, M) and Math. 179-2 holds for all conforming j).

[Math. 180]

When i≠1 (where i is an integer greater than or equal to two and less than or equal to M (i=2, 3, . . . , M−1, M)).

H _(cp,comp) [i][i]=1 for ∀i;i=2,3, . . . ,M−1,M  (Math. 180-1)

(where i is an integer greater than or equal to two and less than or equal to M (i=2, 3, . . . , M−1, M) and Math. 180-1 holds for all conforming i).

H _(cp,comp) [i][i−1]=1 for ∀i;i=2,3, . . . ,M−1,M  (Math. 180-2)

(where i is an integer greater than or equal to two and less than or equal to M (i=2, 3, . . . , M−1, M) and Math. 180-2 holds for all conforming i).

H _(cp,comp) [i][j]=0 for ∀i∀j;i≠j;(i=2,3, . . . ,M−1,M),(k=2,3, . . . ,M−1,M)  (Math. 180-3)

(where i is an integer greater than or equal to two and less than or equal to M (i=2, 3, . . . , M−1, M), j is an integer greater than or equal to one and less than or equal to M (j=1, 3, . . . , M−1, M) and Math. 180-3 holds for all conforming i and j).

Next, the configuration of a parity check matrix has been described, using FIGS. 97 through 99, for concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme described in the present Embodiment is used. The following explanation gives a method of expressing the parity check matrix for the above-described concatenate code that differs from those of FIGS. 97 through 99.

In FIGS. 97 through 99, a parity check matrix corresponding to the transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . X_(j,1,k), . . . , X_(j,1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T), a partial matrix pertaining to the information in the parity check matrix, and a partial matrix pertaining to the parity of the parity check matrix have been described. As shown in FIG. 100, the following describes a parity check matrix for the concatenate code concatenating an accumulator, via an interleaver, feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, a partial matrix pertaining to the information in the parity check matrix, and a partial matrix pertaining to the parity of the parity check matrix, for a situation where the transmission sequence is reordered into v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T) (e.g., when reordering is performed on the parity sequence only).

FIG. 100 describes a partial matrix H′_(cp) pertaining to the parity Pc (where the parity Pc signifies the parity of the above-described concatenate code) of a parity check matrix for the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, and where the transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), Pc_(j,1), Pc_(j,2), . . . Pc_(j,k), . . . , Pc_(j,M))^(T) of FIGS. 97 through 99 is reordered into the transmission sequence v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T). The partial matrix H′_(cp) pertaining to the parity Pc has M rows and M columns.

The element at row i and column j of the partial matrix H′_(cp) pertaining to the parity Pc is expressed as H′_(cp,comp)[i][j](where i and j are integers greater than or equal to one and less than or equal to M (i, j,=1, 2, 3, . . . , M−1, M)). The following logically follows.

[Math. 181]

When i≠M (i being an integer greater than or equal to one and less than or equal to M−1 (i=1, 2, 3, . . . , M−1, M)):

H′ _(cp,comp) [i][i]=1 for ∀i;i=1,2, . . . ,M−1  (Math. 181-1)

(where i is an integer greater than or equal to one and less than or equal to M−1 (i=1, 2, 3, . . . , M−1, M) and Math. 181-1 is satisfied for all conforming i)

H′ _(cp,comp) [i][i+1]=1 for ∀i;i=1,2, . . . ,M−1  (Math. 181-2)

(where i is an integer greater than or equal to one and less than or equal to M−1 (i=1, 2, 3, . . . , M−1, M) and Math. 181-2 is satisfied for all conforming i)

H′ _(cp,comp) [i][j]=0  (Math. 181-3)

(where i is an integer greater than or equal to one and less than or equal to M−1 (i=1, 2, 3, . . . , M−1, M), j is an integer greater than or equal to one and less than or equal to M−1 (j=1, 2, 3, . . . , M−1, M) (i≠j and i+1≠j), and Math. 181-3 is satisfied for all conforming i and j).

[Math. 182]

H′ _(cp,comp) [M][M]=1  (Math. 182-1)

H′ _(cp,comp) [M][j]=0 for ∀j;j=1,2, . . . ,M−1  (Math. 182-2)

(where j is an integer greater than or equal to one and less than or equal to M−1 (j=1, 2, 3, . . . , M−1, M) and Math. 182-2 is satisfied for all conforming j).

FIG. 101 describes a partial matrix H′_(cx) pertaining to the information X₁ in a parity check matrix for the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ to an interleaver where the tail-biting scheme is used, and where the transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) of FIGS. 97 through 99 is reordered into the transmission sequence v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T). The partial matrix H′_(cx) pertaining to the information X₁ has M rows and M columns. For comparison, the configuration of the partial matrix H_(cx) pertaining to the information X₁ for the transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) of FIGS. 97 through 99 is also illustrated.

In FIG. 101, H_(cx) (10101) is a partial matrix pertaining to the information X₁ for the transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), Pc_(j,1), Pc_(j,2), . . . Pc_(j,k), . . . , Pc_(j,M))^(T) of FIGS. 97 through 99, and represents H_(cx) from FIG. 98. As explained for FIG. 98, a vector extractible only from a kth row of the partial matrix H_(cx) (10101) pertaining to the information X₁ is represented as hc_(x1,k) (k=1, 2, 3, . . . , M−1, M).

In FIG. 101, H′_(cx) (10102) is a partial matrix pertaining to the information X₁ for the parity check matrix of the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ to an interleaver where the tail-biting scheme is used and when the transmission sequence is v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T). Then, using the vector hc_(x1,k) (k=1, 2, 3, . . . , M−1, M), the partial matrix H′_(cx) (10102) pertaining to the information X₁ is expressed as follows:

hc_(x1,M) is a first row, hc_(x1,M−1) is a second row, . . . hc_(x1,2) is a (M−1)th row, and hc_(x1,1) is an Mth row.

That is, a vector extractible only from a kth (k=1, 2, 3, . . . , M−2, M−1, M) row of the partial matrix H′_(cx) (10102) pertaining to the information X₁ is expressed as hc_(x1,M) ⁻ _(k+1). The partial matrix H′_(cx) (10102) pertaining to the information X₁ has M rows and M columns.

FIG. 102 describes the configuration of a parity check matrix for the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, and where the transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) of FIGS. 97 through 99 is reordered into the transmission sequence v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T). Taking the parity check matrix H′_(cm), a partial matrix H′_(cm) is expressible as H′_(cm)=[H′_(cx), H′_(cp)] by using the partial matrix H′_(cp) pertaining to the parity as described using FIG. 100 and the partial matrix H′_(cx) pertaining to the information X₁ described using FIG. 101. The parity check matrix H′_(cm) has M rows and 2×M columns, and satisfies H′_(cm)v′_(j)=0. (Here, the zero in H′_(cm)v′_(j)=0 signifies that all elements of the vector are zeroes; i.e., that for all k (k being an integer greater than or equal to one and less than or equal to M) the kth row has a value of zero).

The above describes an example of a configuration for a parity check matrix in which the order of the transmission sequence has been modified. However, a generalized description of the configuration of a parity check matrix in which the order of the transmission sequence has been modified is provided below.

The configuration of a parity check matrix H_(cm) has been described, using FIGS. 97 through 99, for concatenate code, concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme described in the present Embodiment is used. Here, the transmission sequence is v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T), and satisfies H_(cm)v_(j)=0. (Here, the zero in H_(cm)v_(j)=0 signifies that all elements of the vector are zeroes; i.e., that for all k (k being an integer greater than or equal to one and less than or equal to M) the kth row has a value of zero).

Next, the configuration of a parity check matrix is described for concatenate code, concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme described in the present Embodiment is used and where the order of the transmission sequence has been modified.

FIG. 103 illustrates a parity check matrix for the above-described concatenate code explained using FIG. 97. Here, although the transmission sequence for a jth block is described above as v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T), the transmission sequence v_(j) for the jth block is represented as v_(j) (X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), Pc_(j,1), Pc_(j,2) . . . , Pc_(j,k), . . . , Pc_(j,M)) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,2M−2), Y_(j,2M−1), Y_(j,2M))^(T). Here, Y_(j,k) is the information X₁ or the parity Pc. (For generalization, the information X₁ and the parity Pc are not distinguished.) Here, an element (the element in the kth column of the transpose matrix v_(j) ^(T) of the transmission sequence v_(j) for FIG. 103) of the kth row (where k is an integer greater than or equal to one and less than or equal to 2M) of the transmission sequence v_(j) for a jth block is Y_(j,k), and a vector c_(k) extracted from a kth column of the parity check matrix H_(cm) for the concatenate code, concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, is as shown in FIG. 103. Here, the parity check matrix H_(cm) for the above-described concatenate code is expressed as follows.

[Math. 183]

H _(cm) =[c ₁ c ₂ c ₃ . . . c _(2M−2) c _(2M−1) C _(2M])  (Math. 183)

Next, the configuration of a parity check matrix for the above-described concatenate code in which the transmission sequence v_(j) for the aforementioned jth block v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,2M−2), Y_(j,2M−1), Y_(j,2M))^(T) has had the elements thereof rearranged is described with reference to FIG. 104. As a result of reordering the aforementioned transmission sequence v_(j) for the jth block such that v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(1,1,k), . . . , X_(j,1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))T=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,2M−2), Y_(j,2M−1), Y_(j,2M))^(T), for example, a parity check matrix is plausible for a situation where, as shown in FIG. 104 the transmission sequence (codeword) is v_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). As discussed above, the transmission sequence v_(j) for the jth block is reordered to produce the transmission sequence v′_(j). Accordingly, v′_(j) is a 1×2M vector, and the 2M elements of v′_(j) are such that one each of the terms Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,2M−2), Y_(j,2M−1), Y_(j,2M) is present.

FIG. 104 illustrates a parity check matrix H′_(cm) in a situation where the transmission sequence (codeword) is v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). Here, the element in the first row of the transmission sequence v′_(j) for the jth block (the element in the first column of the transpose matrix v′_(j) ^(T) of the transmission sequence v′_(j) in FIG. 104) is Y_(j,32). Accordingly, c₃₂ is a vector extracted from the first row of the parity check matrix H′_(cm) using the above-described vector c_(k) (k=1, 2, 3, . . . , 2M−2, 2M−1, 2M). Here, the element in the second row of the transmission sequence v′_(j) for the jth block (the element in the second column of the transpose matrix v′_(j) ^(T) of the transmission sequence v′_(j) in FIG. 104) is Y_(j,99). Accordingly, c₉₉ is a vector extracted from the second row of the parity check matrix H′_(cm). Further, as shown in FIG. 104, c₂₃ is a vector extracted from the third row of the parity check matrix H′_(cm), c₂₃₄ is a vector extracted from the (2M−2)th row of the parity check matrix H′_(cm), c₃ is a vector extracted from the (2M−1)th row of the parity check matrix H′_(cm), and c₄₃ is a vector extracted from the 2Mth row of the parity check matrix H′_(cm).

That is, when the element in the ith row of the transmission sequence v′_(j) for the jth block (the element in the ith column of the transpose matrix v′_(j) ^(T) of the transmission sequence v′_(j) in FIG. 104) is represented as Y_(j,g) (g=1, 2, 3, . . . , 2M−2, 2M−1, 2M), then the vector extracted from the ith column of the parity check matrix H′_(cm) is c_(g), as found using the above-described vector c_(k).

Thus, the parity check matrix H′_(cm) for the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) is expressed as follows.

[Math. 184]

H′ _(cm) =[c ₃₂ c ₉₉ c ₂₃ . . . c ₂₃₄ c ₃ C _(43])  (Math. 184)

When the element in the ith row of the transmission sequence v′_(j) for the jth block (the element in the ith column of the transpose matrix v′_(j) ^(T) of the transmission sequence v′_(j) in FIG. 104) is represented as Y_(j,g) (g=1, 2, 3, . . . , 2M−2, 2M−1, 2M), then the vector extracted from the ith column of the parity check matrix H′_(cm) is c_(g), as found using the above-described vector c_(k). When the above is followed to create the parity check matrix, then a parity check matrix for the transmission sequence v_(j) of the jth block is obtainable with no limitation to the above-given example.

The above interpretation is described below. First, the reordering of the elements in the transmission sequence (codeword) is described in generality. FIG. 105 illustrates the configuration of a parity check matrix H for LDPC (block) codes having a coding rate of (N−M)/N (where N>M>0). For example, the parity check matrix of FIG. 105 has M rows and N columns. In FIG. 105, the transmission sequence (codeword) for the jth block is v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)) (or Y_(j,k) (k being an integer greater than or equal to one and less than or equal to N) for systematic codes, replacing the information X or the parity P). It follows that Hv_(j)=0 (Here, the zero in Hv_(j)=0 signifies that all elements of the vector are zeroes; i.e., that for all k (k being an integer greater than or equal to one and less than or equal to M) the kth row has a value of zero). Here, the element of the kth row (k being an integer greater than or equal to one and less than or equal to M) of the transmission sequence v_(j) for the jth block (the element in the kth column of the transpose matrix v_(j) ^(T) of the transmission sequence v_(j) for FIG. 105) is Y_(j,k), and a vector extracted from a kth column of the parity check matrix H for the LDPC (block) codes having a coding rate of (N−M)/N (where N>M>0) is c_(k), as shown in FIG. 105. Here, the parity check matrix H for the above-described LDPC (block) code is expressed as follows.

[Math. 185]

H=[c ₁ c ₂ c ₃ . . . c _(N−2) c _(N−1) C _(2N])  (Math. 185)

FIG. 106 indicates the configuration when interleaving is applied to a transmission sequence (codeword) for the jth block v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)). In FIG. 106, an encoding section 10602 takes information 10601 as input, performs encoding thereon, and outputs encoded data 10603. For example, when encoding the LDPC (block) code having a coding rate (N−M)/N (where N>M>0) as given in FIG. 106, the encoding section 10602 takes the information for the jth block as input, performs encoding thereon based on the parity check matrix H for the LDPC (block) code having a coding rate (N−M)/N (where N>M>0) as given in FIG. 105, and outputs a transmission sequence (codeword) for the jth block of v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1),Y_(j,N)).

Then, an accumulation and reordering section (interleaving section) 10604 takes the encoded data 10603 as input, accumulates the encoded data 10603, performs reordering thereon, and outputs interleaved data 10605. Accordingly, the accumulation and reordering section (interleaving section) 10604 takes the transmission sequence v_(j) for the jth block v_(j)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N))^(T) as input, and outputs the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T), which is the result of performing reordering on the elements of the transmission sequence v_(j) as shown in FIG. 106. As discussed above, the transmission sequence v_(j) for the jth block is reordered to produce the transmission sequence v′_(j). Accordingly, v′_(j) is a 1×n vector, and the N elements of v′_(j); are such that one each of the terms Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N) is present

Then, as shown in FIG. 106, an encoding section 10607 having the functions of the encoding section 10602 and the accumulation and reordering section (interleaving section) 10604 is plausible. Accordingly, the encoding section 10607 takes information 10601 as input, performs encoding thereon, and outputs encoded data 10603. For example, the encoding section 10607 takes the information of the jth block as input, and as shown in FIG. 106, outputs a transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). Here, the parity check matrix H′ for the LDPC (block) code having a coding rate (N−M)/N (where N>M>0) corresponding to the encoding section 10607 is described using FIG. 107.

FIG. 107 illustrates a parity check matrix H′_(cm) in a situation where the transmission sequence (codeword) is v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). Here, the element in the first row of the transmission sequence v′_(j) for the jth block (the element in the first column of the transpose matrix v′_(j) ^(T) of the transmission sequence v′_(j) in FIG. 107) is Y_(j,32). Accordingly, c₃₂ is a vector extracted from the first row of the parity check matrix H′ using the above-described vector c_(k) (k=1, 2, 3, . . . , N−2, N−1, N). Here, the element in the second row of the transmission sequence v′_(j) for the jth block (the element in the second column of the transpose matrix v′_(j) ^(T) of t transmission sequence v′_(j) in FIG. 107) is Y_(j,99). Accordingly, c₉₉ is a vector extracted from the second row of the parity check matrix H′. Further, as shown in FIG. 107, c₂₃ is a vector extracted from the third row of the parity check matrix H′, c₂₃₄ is a vector extracted from the (N−2)th row of the parity check matrix H′, c₃ is a vector extracted from the (N−1)th row of the parity check matrix H′, and c₄₃ is a vector extracted from the Nth row of the parity check matrix H′.

That is, when the element in the ith row of the transmission sequence v′_(j) for the jth block (the element in the ith column of the transpose matrix v′_(j) of the transmission sequence v′_(j) in FIG. 107) is represented as Y_(j,g) (g=1, 2, 3, . . . , N−2, N−1, N), then the vector extracted from the ith column of the parity check matrix H′ is c_(g), as found using the above-described vector c_(k).

Thus, the parity check matrix H′ for the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) is expressed as follows.

[Math. 186]

H′=[c ₃₂ c ₉₉ c ₂₃ . . . c ₂₃₄ c ₃ C _(43])  (Math. 186)

When the element in the ith row of the transmission sequence v′_(j) for the jth block (the element in the ith column of the transpose matrix v′_(j) ^(T) of the transmission sequence v′_(j) in FIG. 107) is represented as Y_(j,g) (g=1, 2, 3, . . . , N−2, N−1, N), then the vector extracted from the ith column of the parity check matrix H′ is c_(g), as found using the above-described vector c_(k). When the above is followed to create the parity check matrix, then a parity check matrix for the transmission sequence v′_(j) of the jth block is obtainable with no limitation to the above-given example.

Accordingly, when interleaving is applied to the transmission sequence (codeword) of the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, as described above, the parity check matrix of the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used is a matrix on which a column replacement operation has been performed, resulting in the parity check matrix of the transmission sequence (codeword) on which interleaving has been applied.

It naturally follows that when the transmission sequence (codeword) to which interleaving has been applied is returned to original order, the above-described transmission sequence (codeword) of the concatenate code is obtained. The parity check matrix thereof is the parity check matrix of the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used.

FIG. 108 illustrates an example of the decoding-related configuration of a receiving device, when the encoding of FIG. 106 has been employed. The transmission sequence obtained using the encoding of FIG. 106 produces a modulated signal by performing mapping, frequency conversion, modulated signal amplification, and similar processes in accordance with a modulation method. The transmitting device transmits the modulated signal. The receiving device then receives the modulated signal transmitted by the transmitting device to obtain a received signal. A bit log-likelihood ratio calculation section 10800 takes the received signal as input, calculates the log-likelihood ratio for each bit of the codeword, and outputs a log-likelihood ratio signal 10801. The operations of the transmitting device and the receiving device are described in Embodiment 15 with reference to FIG. 76.

For example, the transmitting device transmits a transmission sequence for the jth block of v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). Then, the bit log-likelihood ratio calculation section 10800 calculates the log-likelihood ratio for Y_(j,32), the log-likelihood ratio for Y_(j,99), the log-likelihood ratio for Y_(j,23), . . . , the log-likelihood ratio for Y_(j,234), the log-likelihood ratio for Y_(j,3), and the log-likelihood ratio for Y_(j,43) from the received signal, and outputs the log-likelihood ratios.

An accumulation and reordering section (deinterleaving section) 10802 takes the log-likelihood ratio signal 10801 as input, performs accumulation and reordering thereon, and outputs a deinterleaved log-likelihood ratio signal 1803.

For example, the accumulation and reordering section (deinterleaving section) 10802 takes the log-likelihood ratio for Y_(j,32), the log-likelihood ratio for Y_(j,99), the log-likelihood ratio for Y_(j,23), . . . , the log-likelihood ratio for Y_(j,234), the log-likelihood ratio for Y_(j,3), and the log-likelihood ratio for Y_(j,43) as input, performs reordering, and outputs the log-likelihood ratios in the order of: the log-likelihood ratio for Y_(j,1), the log-likelihood ratio for Y_(j,2), the log-likelihood ratio for Y_(j,3), . . . , the log-likelihood ratio for Y_(j,N−2), the log-likelihood ratio for Y_(j,N−1), and the log-likelihood ratio for Y_(j,N).

A decoder 10604 takes the deinterleaved log-likelihood ratio signal 1803 as input, performs belief propagation decoding, such as the BP decoding given in Non-Patent Literature 4 to 6, sum-product decoding, min-sum decoding, offset BP decoding, Normalized BP decoding, Shuffled BP decoding, and Layered BP decoding in which scheduling is performed, based on the parity check matrix H for LDPC (block) codes having a coding rate of (N−M)/N (where N>M>0) as illustrated with FIG. 105, obtaining an estimated sequence 10805.

For example, the decoder 10604 takes the log-likelihood ratio for Y_(j,1), the log-likelihood ratio for Y_(j,2), the log-likelihood ratio for Y_(j,3), . . . , the log-likelihood ratio for Y_(j,N−2), the log-likelihood ratio for Y_(j,N−1), and the log-likelihood ratio for Y_(j,N) as input, performs belief propagation decoding based on the parity check matrix H for LDPC (block) codes having a coding rate of (N−M)/N (where N>M>0) as illustrated with FIG. 105, and obtains the estimated sequence.

A decoding-related configuration that differs from the above is described next. Unlike the above description, the following omits the accumulation and reordering section (deinterleaving section) 10802. The operations of the bit log-likelihood ratio calculation section 10800 are identical to those described above, and thus omitted from this explanation.

For example, the transmitting device transmits a transmission sequence for the jth block of v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). Then, the bit log-likelihood ratio calculation section 10800 calculates the log-likelihood ratio for Y_(j,32), the log-likelihood ratio for Y_(j,99), the log-likelihood ratio for Y_(j,23), . . . , the log-likelihood ratio for Y_(j,234), the log-likelihood ratio for Y_(j,3), and the log-likelihood ratio for Y_(j,43) from the received signal, and outputs the log-likelihood ratios (corresponding to 10806 from FIG. 108).

A decoder 10607 takes the log-likelihood ratio signal 1806 as input, performs belief propagation decoding, such as the BP decoding given in Non-Patent Literature 4 to 6, sum-product decoding, min-sum decoding, offset BP decoding, Normalized BP decoding, Shuffled BP decoding, and Layered BP decoding in which scheduling is performed, based on the parity check matrix H′ for LDPC (block) codes having a coding rate of (N−M)/N (where N>M>0) as illustrated with FIG. 107, obtaining an estimated sequence 10809.

For example, the decoder 10607 takes the log-likelihood ratio for Y_(j,32), the log-likelihood ratio for Y_(j,99), the log-likelihood ratio for Y_(j,23), . . . , the log-likelihood ratio for Y_(j,234), the log-likelihood ratio for Y_(j,3), and the log-likelihood ratio for Y_(j,43) as input, performs belief propagation decoding based on the parity check matrix H for LDPC (block) codes having a coding rate of (N−M)/N (where N>M>0) as illustrated with FIG. 107, and obtains the estimated sequence.

As per the above, the transmitting device applies interleaving to the transmission sequence v_(j) for the jth block, where v_(j)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N))^(T). When the order of the transmitted data is modified, the parity check matrix corresponding to the modified order is used, such that the receiving device is able to obtain the estimated sequence.

Accordingly, when interleaving is applied to the transmission sequence (codeword) of the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, as described above, the parity check matrix of the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used is a matrix on which a column replacement operation has been performed, resulting in the parity check matrix of the transmission sequence (codeword) on which interleaving has been applied. Thus, with such a receiving device, belief propagation decoding is performable without performing deinterleaving on the log-likelihood ratio for each acquired bit, yet the estimated sequence is still acquired.

Although the above describes the relation between transmission sequence interleaving and the parity check matrix, the following describes row replacement performed on the parity check matrix.

FIG. 109 illustrates the configuration of a parity check matrix H corresponding to the transmission sequence (codeword) v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)) for the jth block of the LDPC (block) codes having a coding rate of (N−M)/N. (For systematic codes, Y_(j,k) (k being an integer greater than or equal to one and less than or equal to N) is the information X or the parity P. As such, Y_(j,k) is made up of (N−M) bits of information and M bits of parity.) It follows that Hv_(j)=0 (Here, the zero in Hv_(j)=0 signifies that all elements of the vector are zeroes; i.e., that for all k (k being an integer greater than or equal to one and less than or equal to M) the kth row has a value of zero). The vector z_(k) is a vector extracted from the kth row (k being an integer greater than or equal to one and less than or equal to M) of the parity check matrix H in FIG. 109. Here, the parity check matrix H for the above-described LDPC (block) code is expressed as follows.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 187} \right\rbrack & \; \\ {H = {\begin{bmatrix} z_{1} \\ z_{2} \\ \vdots \\ z_{M - 1} \\ z_{M} \end{bmatrix}.}} & \left( {{Math}.\mspace{14mu} 187} \right) \end{matrix}$

Next, a parity check matrix is discussed in which row replacement is performed on the parity check matrix H of FIG. 109. FIG. 110 shows a parity check matrix H′ obtained by performing row replacement on the parity check matrix H. The parity check matrix H′ is, like FIG. 109, a parity check matrix corresponding to the transmission sequence (codeword) v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)) for the jth block of the LDPC (block) codes having a coding rate of (N−M)/N. The parity check matrix H′ of FIG. 110 is made up vectors z_(k) extracted from the kth row (k being an integer greater than or equal to one and less than or equal to M) of the parity check matrix H from FIG. 109. For example, in the parity check matrix H′, the first row is z₁₃₀, the second row is z₂₄, the third row is z₄₅, . . . , the (M−2)th row is z₃₃, the (M−1)th row is z₉, and the Mth row is z₃. The M vectors extracted from the kth row (k being an integer greater than or equal to one and less than or equal to M) of the parity check matrix H′ are such that one each of the terms z₁, z₂, z₃, . . . , z_(M−2), z_(M−1), z_(M) is present.

Here, the parity check matrix H′ for the above-described LDPC (block) code is expressed as follows.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 188} \right\rbrack & \; \\ {H^{\prime} = {\begin{bmatrix} z_{130} \\ z_{24} \\ \vdots \\ z_{9} \\ z_{3} \end{bmatrix}.}} & \left( {{Math}.\mspace{14mu} 188} \right) \end{matrix}$

It follows that H′v_(j)=0 (Here, the zero in Hv_(j)=0 signifies that all elements of the vector are zeroes; i.e., that for all k (k being an integer greater than or equal to one and less than or equal to M) the kth row has a value of zero).

That is, given the transmission sequence v_(j) ^(T) for the jth block, a vector extracted from the ith row of the parity check matrix H′ is expressed as c_(k) (k being an integer greater than or equal to one and less than or equal to M), and the M vectors extracted from the kth row (k being an integer greater than or equal to one and less than or equal to M) of the parity check matrix H′ are such that one each of the terms z₁, z₂, z₃, . . . , z_(M−2), z_(M−1), z_(M) is present.

Given the transmission sequence v_(j) ^(T) for the jth block, a vector extracted from the ith row of the parity check matrix H′ is expressed as c_(k) (k being an integer greater than or equal to one and less than or equal to M), and the M vectors extracted from the kth row (k being an integer greater than or equal to one and less than or equal to M) of the parity check matrix H′ are such that one each of the terms z₁, z₂, z₃, . . . , z_(M−2), z_(M−1), z_(M) is present. When the above is followed to create the parity check matrix, then a parity check matrix for the transmission sequence vj of the jth block is obtainable with no limitation to the above-given example.

Accordingly, when the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, no limitation to the parity check matrix described in FIGS. 94 through 102 necessarily applies. As described above, a parity check matrix may also be used in which column replacement or row replacement has been applied to the parity check matrix of FIG. 97 or FIG. 102.

The following describes concatenate code concatenating an accumulator from FIG. 90 via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial where the tail-biting scheme is used.

In the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial where the tail-biting scheme is used, each block is made up of M bits of information X₁ and M bits of parity Pc (where the parity Pc represents the parity of the aforementioned concatenate code) (given a coding rate of ½). As such, the M bits of information X1 for the jth block are expressed as X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), and the M blocks of parity Pc are expressed as Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M) (accordingly, k=1, 2, 3, . . . , M−1, M). Thus, the transmission sequence is expressed as v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T). Thus, a parity check matrix H_(cm) is described by FIG. 97, or alternatively as H_(cm)=[H_(cx), H_(cp)] for concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial where the tail-biting scheme described in the present Embodiment. (Here, H_(cm)v_(j)=0. The zero in H_(cm)v_(j)=0 signifies that all elements of the vector are zeroes; i.e., that for all k (k being an integer greater than or equal to one and less than or equal to M) the kth row has a value of zero). Here, H_(cx) is a partial matrix pertaining to the information X₁ of the parity check matrix H_(cm) for the above-described concatenate code, H_(cp) is a partial matrix pertaining to the parity Pc (where the parity Pc signifies the parity of the above-described concatenate code) of the parity check matrix Hcm for the above-described concatenate code, and as shown in FIG. 97, the parity check matrix H_(cm) has M rows and 2×M columns, the partial matrix H_(cx) pertaining to the X₁ has M rows and M columns, and the partial matrix H_(cp) pertaining to the parity Pc also has M rows and M columns. The configuration of the partial matrix H_(cx) pertaining to the information X₁ is described above with reference to FIG. 98. Accordingly, the following describes the configuration of the partial matrix H_(cp) pertaining to the parity Pc.

FIG. 111 illustrates an example of a configuration for the partial matrix H_(cp) pertaining to the parity Pc as applied to the accumulator from FIG. 89.

As shown in FIG. 111, in the configuration of the partial matrix H_(cp) pertaining to the parity Pc as applied to the accumulator from FIG. 89, the element at row i, column j of the partial matrix H_(cp) pertaining to the parity Pc is expressed as H_(cp,comp)[i][j](where i and j are integers greater than or equal to one and less than or equal to M (i, j=1, 2, 3, . . . , M−1, M)). The following thus holds.

[Math. 189]

H _(cp,comp) [i][i]=1 for ∀i;i=1,2,3, . . . ,M−1,M  (Math. 189)

(where i is an integer greater than or equal to one and less than or equal to M (i=1, 2, 3, . . . , M−1, M) and Math. 189 holds for all conforming i)

The following also holds.

[Math. 190]

When i is an integer greater than or equal to one and less than or equal to M (i=1, 2, 3, . . . , M−1, M), j is an integer greater than or equal to one and less than or equal to M (j=1, 2, 3, . . . , M−1, M), i>j, and Math. 190 holds for all conforming i and j:

H _(cp,comp) [i][j]=1 for i>j;i,j=1,2,3, . . . ,M−1,M  (Math. 190)

The following also holds.

[Math. 191]

When i is an integer greater than or equal to one and less than or equal to M (i=1, 2, 3, . . . , M−1, M), j is an integer greater than or equal to one and less than or equal to M (j=1, 2, 3, . . . , M−1, M), i<j, and Math. 191 holds for all conforming i and j:

H _(cp,comp) [i][j]=0 for ∀i∀j;i<j;i,j=1,2,3, . . . ,M−1,M  (Math. 191)

The partial matrix H_(cp) pertaining to the parity Pc when applied to the accumulator from FIG. 89 satisfies the above.

FIG. 112 illustrates an example of a configuration for the partial matrix H_(cp) pertaining to the parity Pc as applied to the accumulator from FIG. 90.

As shown in FIG. 112, in the configuration of the partial matrix H_(cp) pertaining to the parity Pc as applied to the accumulator from FIG. 90, the element at row i, column j of the partial matrix H_(cp) pertaining to the parity Pc is expressed as H_(cp,comp)[i][j](where i and j are integers greater than or equal to one and less than or equal to M (i, j=1, 2, 3, . . . , M−1, M)). The following thus holds.

[Math. 192]

H _(cp,comp) [i][i]=1 for ∀i;i=1,2,3, . . . ,M−1,M  (Math. 192)

(where i is an integer greater than or equal to one and less than or equal to M (i=1, 2, 3, . . . , M−1, M) and Math. 192 holds for all conforming i)

[Math. 193]

H _(cp,comp) [i][i−1]=1 for ∀i;i=2,3, . . . ,M−1,M  (Math. 193)

(where i is an integer greater than or equal to one and less than or equal to M (i=1, 2, 3, . . . , M−1, M) and Math. 193 holds for all conforming i)

The following also holds.

[Math. 194]

When i is an integer greater than or equal to one and less than or equal to M (i=1, 2, 3, . . . , M−1, M), j is an integer greater than or equal to one and less than or equal to M (j=1, 2, 3, . . . , M−1, M), i−j≧2, and Math. 194 holds for all conforming i and j:

H _(cp,comp) [i][j]=1 for i−j≧2;i,j=1,2,3, . . . ,M−1,M  (Math. 194)

The following also holds.

[Math. 195]

When i is an integer greater than or equal to one and less than or equal to M (i=1, 2, 3, . . . , M−1, M), j is an integer greater than or equal to one and less than or equal to M (j=1, 2, 3, . . . , M−1, M), i<j, and Math. 195 holds for all conforming i and j:

H _(cp,comp) [i][j]=1 for ∀i∀j;i<j;i,j=1,2,3, . . . ,M−1,M  (Math. 195)

The partial matrix H_(cp) pertaining to the parity Pc when applied to the accumulator from FIG. 90 satisfies the above.

The encoding unit of FIG. 88 is an encoding unit in which the accumulator of FIG. 89 has been applied to FIG. 88, or is an encoding unit in which the accumulator of FIG. 90 has been applied to FIG. 88. According to the configuration of FIG. 88, the parity is obtainable from the parity check matrix described thus far, though the parity is not necessarily required. Here, the information X for the jth block is accumulated at once, and the parity check matrix for the information X so accumulated is useable to obtain the parity.

Next, a code generation method is described for concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, and where the column weighting is equal for all columns of the partial matrix pertaining to the information X₁.

As described above, for the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, the parity check polynomial having a time-varying period of q and on which the feed-forward LDPC convolutional codes are based has a gth (g=0, 1, . . . , q−1) parity check polynomial (see Math. 128) that satisfies zero and is expressed as follows, with reference to Math. 145.

[Math. 196]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,r1)+1)X ₁(D)+P(D)=0  (Math. 196)

In Math. 196, a_(#g,p,q) (p=1; q=1,2, . . . , r_(p)) is a natural number. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p), y≠z, a_(#g,p,y)≠a_(#g,p,z) holds. Then, high error-correction capability is obtained when r1 is three or greater. Polynomial portions of the parity check polynomial that satisfies zero for Math. 196 are defined by the following function.

[Math. 197]

F _(g)(D)=(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,r1)+1)X ₁(D)+P(D)  (Math. 197)

The following two methods allow the use of a time-varying period of q.

Method 1:

[Math. 198]

F _(i)(D)≠F _(j)(D)∀i∀j i,j=0,1,2, . . . ,q−2,q−1;i≠j  (Math. 198)

(where i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and F_(i)(D)≠F_(j)(D) for all conforming i and j)

Method 2:

[Math. 199]

F _(i)(D)≠F _(j)(D)  (Math. 199)

where i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and some i and j exist that satisfy Math. 199. Also,

[Math. 200]

F _(i)(D)=F _(j)(D)  (Math. 200)

where i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and some i and j exist that satisfy Math. 200, thus resulting in a time-varying period of q. In order to create the time-varying period of q, Method I and Method 2 are, as described below, also applicable to polynomial portions of a parity check polynomial that satisfies zero for Math. 204 and is defined by the function Γ_(g)(D).

Next, a setting example for the term a_(#g,p,q) in Math. 196 is described, particularly for a case where r1 is three. When r1 is three, the parity check polynomial satisfying zero for the feed-forward periodic parity check polynomial having a time-varying period of q is applicable as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 201} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} {zeroth}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 201}\text{-}0} \right) \\ {{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + D^{{a{\# 0}},1,3} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a\mspace{14mu} {first}\mspace{14mu} {zero}\text{:}} & \left( {{{Math}.\mspace{14mu} 201}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + D^{{a{\# 1}},1,3} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} {second}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 201}\text{-}2} \right) \\ {{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + D^{{a{\# 2}},1,3} + 1} \right){X_{1}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 201}\text{-}g} \right) \\ {{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + D^{{a\# g},1,3} + 1} \right){X_{1}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} \left( {q\text{-}2} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 201}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{\left( {D^{{a\# q\text{-}2},1,1} + D^{{a\# q\text{-}2},1,2} + D^{{a\# q\text{-}2},1,3} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\mspace{14mu} \text{}\mspace{79mu} {\left( {q\text{-}1} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 201}\text{-}\left( {q\text{-}1} \right)} \right) \\ {{{\left( {D^{{a\# q\text{-}1},1,1} + D^{{a\# q\text{-}1},1,2} + D^{{a\# q\text{-}1},1,3} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \end{matrix}$

Taking the explanations provided in Embodiments 1 and 6 into consideration, high error-correction capability is achievable when the following conditions are satisfied.

<Condition 17-2>

a_(#0, 1, 1)%q = a_(#1, 1, 1)%q = a_(#2, 1, 1)%q = a_(#3, 1, 1)%q = …  ,  = a_(#g, 1, 1)%q = …  ,  = a_(#q − 2, 1, 1)%q = a_(#q − 1, 1, 1)%q = v₁  (where  v₁  is  a  fixed  value) a_(#0, 1, 2)%q = a_(#1, 1, 2)%q = a_(#2, 1, 2)%q = a_(#3, 1, 2)%q = …  ,  = a_(#g, 1, 2)%q = …  ,  = a_(#q − 2, 1, 2)%q = a_(#q − 1, 1, 2)%q = v₂  (where  v₂  is  a  fixed  value) a_(#0, 1, 3)%q = a_(#1, 1, 3)%q = a_(#2, 1, 3)%q = a_(#3, 1, 3)%q = …  ,  = a_(#g, 1, 3)%q = …  ,  = a_(#q − 2, 1, 3)%q = a_(#q − 1, 1, 3)%q = v₃  (where  v₃  is  a  fixed  value)

In the above, % represents the modulo operator, such that α%q signifies the remainder when α is divided by q. Condition 17-2 is also expressible as the following.

<Condition 17-2′>

a_(#k, 1, 1)%q = v₁  for  ∀k  k = 0, 1, 2, …  , q − 3, q − 2, q − 1  (where  v₁  is  a  fixed  number)  (k  is  an  integer  greater  than   or  equal  to  zero  and  less  than  or  equal  to  q − 1, a_(#k, 1, 1)%q = v₁  (where  v₁  is  a  fixed  number)  holds  for  all  k) a_(#k, 1, 2)%q = v₂  for  ∀k  k = 0, 1, 2, …  , q − 3, q − 2, q − 1  (where  v₂  is  a  fixed  number)  (k  is  an  integer  greater  than  or  equal  to  zero  and  less  than  or  equal  to  q − 1, a_(#k, 1, 2)%q = v₂  (where  v₂  is  a  fixed  number)  holds  for  all  k) a_(#k, 1, 3)%q = v₃  for  ∀k  k = 0, 1, 2, …  , q − 3, q − 2, q − 1  (where  v₃   is  a  fixed  number)  (k  is  an  integer  greater  than  or  equal  to  zero  and  less  than  or  equal  to  q − 1, a_(#k, 1, 3)%q = v₃  (where  v₃  is  a  fixed  number)  holds  for  all  k)

As described in Embodiments 1 and 6 into consideration, high error-correction capability is achievable when the following condition is satisfied.

<Condition 17-3>

v₁≠v₂, v₁≠v₃, v₂≠v₃, v₁≠0, v₂≠0, v₃≠0.

To satisfy Condition 17-3, the time-varying period of q is required to be four or greater. (This is derived from the terms of X₁(D) in the parity check polynomial.)

High error-correction capability is obtainable from the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, provided that the above conditions are satisfied. High error-correction capability is also achievable when r1 is greater than three. Such a situation is described next.

When r1 is four, the parity check polynomial satisfying zero for the feed-forward periodic parity check polynomial having a time-varying period of q is applicable as follows.

[Math. 202]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,r1)+1)X ₁(D)+P(D)=0  (Math. 202)

In Math. 202, a_(#g,p,q) (p=1; q=1,2, . . . , r_(p)) is a natural number. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p), y≠z, a_(#g,p,y)≠a_(#g,p,z) holds. Accordingly, the following is applicable to the parity check polynomial satisfying zero for the feed-forward periodic parity check polynomial having a time-varying period of q that is equal to or greater than four.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 203} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} {zeroth}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 203}\text{-}0} \right) \\ {{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a\mspace{14mu} {first}\mspace{14mu} {zero}\text{:}} & \left( {{{Math}.\mspace{14mu} 203}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \text{}\mspace{79mu} {a\mspace{14mu} {second}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 203}\text{-}2} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{85mu} \vdots} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 203}\text{-}g} \right) \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{85mu} \vdots} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} \left( {q\text{-}2} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 203}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{\left( {D^{{a\# q\text{-}2},1,1} + D^{{a\# q\text{-}2},1,2} + \ldots + D^{{a\# q\text{-}2},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\mspace{14mu} \text{}\mspace{79mu} {\left( {q\text{-}1} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 203}\text{-}\left( {q\text{-}1} \right)} \right) \\ {{{\left( {D^{{a\# q\text{-}1},1,1} + D^{{a\# q\text{-}1},1,2} + \ldots + D^{{a\# q\text{-}1},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \end{matrix}$

Taking the explanations provided in Embodiments 1 and 6 into consideration, high error-correction capability is achievable when the following conditions are satisfied.

<Condition 17-4>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1)%  q = …  ,  = a_(#g, 1, 1)%  q = …  ,  = a_(#q − 2, 1, 1)%  q = a_(#q − 1, 1, 1)%  q = v₁  (where  v₁  is  a  fixed  number) a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)%  q = …  ,  = a_(#g, 1, 2)%  q = …  ,  = a_(#q − 2, 1, 2)%  q = a_(#q − 1, 1, 2)%  q = v₂  (where  v₂  is  a  fixed  number) a_(#0, 1, 3)%  q = a_(#1, 1, 3)%  q = a_(#2, 1, 3)%  q = a_(#3, 1, 3)%  q = …  ,  = a_(#g, 1, 3)%  q = …  ,  = a_(#q − 2, 1, 3)%  q = a_(#q − 1, 1, 3)%  q = v₃  (where  v₃  is  a  fixed  number) ⋮ a_(#0, 1, r 1 − 1)%  q = a_(#1, 1, r 1 − 1)%  q = a_(#2, 1, r 1 − 1)%  q = a_(#3, 1, r 1 − 1)%  q = …  ,  = a_(#g, 1, r 1 − 1)%  q = …  ,  = a_(#q − 2, 1, r 1 − 1)%  q = a_(#q − 1, 1, r 1 − 1)%  q = v_(r 1 − 1)  (where  v_(r 1 − 1)  is  a  fixed  number) a_(#0, 1, r 1)%  q = a_(#1, 1, r 1)%  q = a_(#2, 1, r 1)%  q = a_(#3, 1, r 1)%  q = …  ,  = a_(#g, 1, r 1)%  q = …  ,  = a_(#q − 2, 1, r 1)%  q = a_(#q − 1, 1, r 1)%  q = vr₁  (where  vr₁  is  a  fixed  number)

In the above, % represents the modulo operator, such that α%q signifies the remainder when α is divided by q. Condition 17-4 is also expressible as the following. Here, j is an integer greater than or equal to one and less than or equal to r1.

<Condition 17-4′>

a_(#k,1,j)%q=v_(j) for ∀k k=0, 1, 2, . . . , q−3, q−2, q−1 (where v_(j) is a fixed number) (k is an integer greater than or equal to zero and less than or equal to q−1, a_(#k,1,j)%q=v_(j) (where v_(j) is a fixed number) holds for all k)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

<Condition 17-5>

i is an integer greater than or equal to zero and less than or equal to r1, and v_(i)≠0 for all conforming i, and

i is an integer greater than or equal to zero and less than or equal to r1, j is an integer greater than or equal to zero and less than or equal to r1, i≠j, and v_(i)≠v_(j) for all conforming i and j.

To satisfy Condition 17-5, the time-varying period of q is required to be r1+1 or greater. (This is derived from the terms of X₁(D) in the parity check polynomial.)

High error-correction capability is obtainable from the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, provided that the above conditions are satisfied. Next, the following parity check polynomial is considered for the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, the parity check polynomial having a time-varying period of q and on which the feed-forward LDPC convolutional codes are based has a gth (g=0, 1, . . . , q−1) parity check polynomial that satisfies zero.

[Math. 204]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,r1−1) +D ^(a#g,1,r1))X ₁(D)+P(D)=0  (Math. 204)

In Math. 204, a_(#g,p,q) (p=1; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p), y≠z, a_(#g,p,y)≠a_(#g,p,z) holds.

Next, a setting example for the term a_(#g,p,q) in Math. 204 is described, particularly for a case where r1 is four.

When r1 is four, the parity check polynomial satisfying zero for the feed-forward periodic parity check polynomial having a time-varying period of q is applicable as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 205} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} {zeroth}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 205}\text{-}0} \right) \\ {{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + D^{{a{\# 0}},1,3} + D^{{a{\# 0}},1,4}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a\mspace{14mu} {first}\mspace{14mu} {zero}\text{:}} & \left( {{{Math}.\mspace{14mu} 205}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + D^{{a{\# 1}},1,3} + D^{{a{\# 1}},1,4}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \text{}\mspace{79mu} {a\mspace{14mu} {second}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 205}\text{-}2} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + D^{{a{\# 2}},1,3} + D^{{a{\# 2}},1,4}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{85mu} \vdots} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 205}\text{-}g} \right) \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + D^{{a\# g},1,3} + D^{{a\# g},1,4}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{85mu} \vdots} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} \left( {q\text{-}2} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 205}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{\left( {D^{{a\# q\text{-}2},1,1} + D^{{a\# q\text{-}2},1,2} + D^{{a\# q\text{-}2},1,3} + D^{{a\# q\text{-}2},1,4}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\mspace{14mu} \text{}\mspace{79mu} {\left( {q\text{-}1} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 205}\text{-}\left( {q\text{-}1} \right)} \right) \\ {{{\left( {D^{{a\# q\text{-}1},1,1} + D^{{a\# q\text{-}1},1,2} + D^{{a\# q\text{-}1},1,3} + D^{{a\# q\text{-}1},1,4}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \end{matrix}$

Taking the explanations provided in Embodiments 1 and 6 into consideration, high error-correction capability is achievable when the following conditions are satisfied.

<Condition 17-6>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1)%  q = …  ,  = a_(#g, 1, 1)%  q = …  ,  = a_(#q − 2, 1, 1)%  q = a_(#q − 1, 1, 1)%  q = v₁  (where  v₁  is  a  fixed  number) a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)%  q = …  ,  = a_(#g, 1, 2)%  q = …  ,  = a_(#q − 2, 1, 2)%  q = a_(#q − 1, 1, 2)%  q = v₂  (where  v₂  is  a  fixed  number) a_(#0, 1, 3)%  q = a_(#1, 1, 3)%  q = a_(#2, 1, 3)%  q = a_(#3, 1, 3)%  q = …  ,  = a_(#g, 1, 3)%  q = …  ,  = a_(#q − 2, 1, 3)%  q = a_(#q − 1, 1, 3)%  q = v₃  (where  v₃  is  a  fixed  number) a_(#0, 1, 4)%  q = a_(#1, 1, 4)%  q = a_(#2, 1, 4)%  q = a_(#3, 1, 4)%  q = …  ,  = a_(#g, 1, 4)%  q = …  ,  = a_(#q − 2, 1, 4)%  q = a_(#q − 1, 1, 4)%  q = v₄  (where  v₄  is  a  fixed  number)

In the above, % represents the modulo operator, such that α%q signifies the remainder when α is divided by q. Condition 17-6 is also expressible as the following.

<Condition 17-6′>

a_(#k, 1, 1)%  q = v₁  for  ∀k  k = 0, 1, 2, …  , q − 3, q − 2, q − 1 (where  v₁  is  a  fixed  number) (k  is  an  integer  greater  than  or  equal  to  zero  and  less  thanor  equal  to  q − 1, a_(#k, 1, 1)%  q = v₁(where  v₁  is  a  fixed  number)holds  for  all  k) a_(#k, 1, 2)%  q = v₂  for  ∀k  k = 0, 1, 2, …  , q − 3, q − 2, q − 1 (where  v₂  is  a  fixed  number) (k  is  an  integer  greater  than  or  equal  to  zero  and  less  thanor  equal  to  q − 1, a_(#k, 1, 2)%  q = v₂(where  v₂  is  a  fixed  number)holds  for  all  k) a_(#k, 1, 3)%  q = v₃  for  ∀k  k = 0, 1, 2, …  , q − 3, q − 2, q − 1 (where  v₃  is  a  fixed  number) (k  is  an  integer  greater  than  or  equal  to  zero  and  less  thanor  equal  to  q − 1, a_(#k, 1, 3)%  q = v₃(where  v₃  is  a  fixed  number)holds  for  all  k) a_(#k, 1, 4)%  q = v₄  for  ∀k  k = 0, 1, 2, …  , q − 3, q − 2, q − 1 (where  v₄  is  a  fixed  number) (k  is  an  integer  greater  than  or  equal  to  zero  and  less  thanor  equal  to  q − 1, a_(#k, 1, 4)%  q = v₄(where  v₄  is  a  fixed  number)holds  for  all  k)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

<Condition 17-7>

v₁≠v₂, v₁≠v₃, v₁≠v₄, v₂≠v₃, v₂≠v₄, and v₃≠v₄.

To satisfy Condition 17-7, the time-varying period of q is required to be four or greater. (This is derived from the terms of X₁(D) in the parity check polynomial.)

High error-correction capability is obtainable from the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, provided that the above condition is satisfied. High error-correction capability is also achievable when r1 is greater than four. Such a situation is described next.

When r1 is five, the parity check polynomial satisfying zero for the feed-forward periodic parity check polynomial having a time-varying period of q is applicable as follows.

[Math. 206]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,r1−1) +D ^(a#g,1,r1))X ₁(D)+P(D)=0  (Math. 206)

In Math. 206, a_(#g,p,q) (p=1; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p), y≠z, a_(#g,p,y)≠a_(#g,p,z) holds.

Accordingly, the following is applicable to the parity check polynomial satisfying zero for the feed-forward periodic parity check polynomial having a time-varying period of q that is equal to or greater than five.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 207} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} {zeroth}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 207}\text{-}0} \right) \\ {{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a\mspace{14mu} {first}\mspace{14mu} {zero}\text{:}} & \left( {{{Math}.\mspace{14mu} 207}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \text{}\mspace{79mu} {a\mspace{14mu} {second}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 207}\text{-}2} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{85mu} \vdots} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 207}\text{-}g} \right) \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{85mu} \vdots} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} \left( {q\text{-}2} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 207}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{\left( {D^{{a\# q\text{-}2},1,1} + D^{{a\# q\text{-}2},1,2} + \ldots + D^{{a\# q\text{-}2},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\mspace{14mu} \text{}\mspace{79mu} {\left( {q\text{-}1} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 207}\text{-}\left( {q\text{-}1} \right)} \right) \\ {{{\left( {D^{{a\# q\text{-}1},1,1} + D^{{a\# q\text{-}1},1,2} + \ldots + D^{{a\# q\text{-}1},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \end{matrix}$

Taking the explanations provided in Embodiments 1 and 6 into consideration, high error-correction capability is achievable when the following conditions are satisfied.

<Condition 17-8>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1)%  q = …  ,  = a_(#g, 1, 1)%  q = …  ,  = a_(#q − 2, 1, 1)%  q = a_(#q − 1, 1, 1)%  q = v₁  (where  v₁  is  a  fixed  number) a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)%  q = …  ,  = a_(#g, 1, 2)%  q = …  ,  = a_(#q − 2, 1, 2)%  q = a_(#q − 1, 1, 2)%  q = v₂  (where  v₂  is  a  fixed  number) a_(#0, 1, 3)%  q = a_(#1, 1, 3)%  q = a_(#2, 1, 3)%  q = a_(#3, 1, 3)%  q = …  ,  = a_(#g, 1, 3)%  q = …  ,  = a_(#q − 2, 1, 3)%  q = a_(#q − 1, 1, 3)%  q = v₃  (where  v₃  is  a  fixed  number) ⋮ a_(#0, 1, r 1 − 1)%  q = a_(#1, 1, r 1 − 1)%  q = a_(#2, 1, r 1 − 1)%  q = a_(#3, 1, r 1 − 1)%  q = …  ,  = a_(#g, 1, r 1 − 1)%  q = …  ,  = a_(#q − 2, 1, r 1 − 1)%  q = a_(#q − 1, 1, r 1 − 1)%  q = v_(r 1 − 1)  (where  v_(r 1 − 1)  is  a  fixed  number) a_(#0, 1, r 1)%  q = a_(#1, 1, r 1)%  q = a_(#2, 1, r 1)%  q = a_(#3, 1, r 1)%  q = …  ,  = a_(#g, 1, r 1)%  q = …  ,  = a_(#q − 2, 1, r 1)%  q = a_(#q − 1, 1, r 1)%  q = v_(r 1)  (where  v_(r 1)  is  a  fixed  number)

In the above, % represents the modulo operator, such that α%q signifies the remainder when α is divided by q. Condition 17-8 is also expressible as the following. Here, j is an integer greater than or equal to one and less than or equal to r1.

<Condition 17-8′>

a_(#k,1,j)%q=v_(j) for ∀k k=0, 1, 2, . . . , q−3, q−2, q−1 (where v_(j) is a fixed number) (k is an integer greater than or equal to zero and less than or equal to q−1, a_(#k,1,j)%q=v_(j) (where v_(j) is a fixed number) holds for all k)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

<Condition 17-9>

i is an integer greater than or equal to zero and less than or equal to r1, j is an integer greater than or equal to zero and less than or equal to r1, i≠j, and v_(i)≠v_(j) for all conforming i and j.

To satisfy Condition 17-9, the time-varying period of q is required to be r1 or greater. (This is derived from the terms of X₁(D) in the parity check polynomial.)

High error-correction capability is obtainable from the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, provided that the above condition is satisfied.

Next, a generation method is described for irregular LDPC code as given in Non-Patent Literature 36, i.e. a generation method for a parity check matrix of concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used and where the partial matrix pertaining to the information X₁ is irregular.

As described above, for the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, the parity check polynomial having a time-varying period of q and on which the feed-forward LDPC convolutional codes are based has a gth (g=0, 1, . . . , q−1) parity check polynomial (see Math. 128) that satisfies zero and is expressed as follows, with reference to Math. 145.

[Math. 208]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,r1)+1)X ₁(D)+P(D)=0  (Math. 208)

In Math. 208, a_(#g,p,q) (p=1; q=1, 2, . . . , r_(p)) is a natural number. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p), y≠z, a_(#g,p,y)≠a_(#g,p,z) holds. Then, high error-correction capability is obtained when r1 is three or greater.

Next, conditions are described for obtaining high error-correction capability from Math. 208 when r1 is three or greater. When r1 is three, the parity check polynomial satisfying zero for the feed-forward periodic parity check polynomial having a time-varying period of q is applicable as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 209} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} {zeroth}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 209}\text{-}0} \right) \\ {{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a\mspace{14mu} {first}\mspace{14mu} {zero}\text{:}} & \left( {{{Math}.\mspace{14mu} 209}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \text{}\mspace{79mu} {a\mspace{14mu} {second}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 209}\text{-}2} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{85mu} \vdots} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 209}\text{-}g} \right) \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{85mu} \vdots} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} \left( {q\text{-}2} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 209}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{\left( {D^{{a\# q\text{-}2},1,1} + D^{{a\# q\text{-}2},1,2} + \ldots + D^{{a\# q\text{-}2},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\mspace{14mu} \text{}\mspace{79mu} {\left( {q\text{-}1} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 209}\text{-}\left( {q\text{-}1} \right)} \right) \\ {{{\left( {D^{{a\# q\text{-}1},1,1} + D^{{a\# q\text{-}1},1,2} + \ldots + D^{{a\# q\text{-}1},1,{r\; 1}} + 1} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \end{matrix}$

Here, high error-correction capability is achievable for the partial matrix pertaining to the information X₁ when the following conditions are taken into consideration in order to have a minimum column weighting of three. For column a of the parity check matrix, a vector extracted from column a has elements such that the number of ones therein is the column weighting of column α.

<Condition 17-10>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1)%  q = …  ,  = a_(#g, 1, 1)%  q = …  ,  = a_(#q − 2, 1, 1)%  q = a_(#q − 1, 1, 1)%  q = v₁  (where  v₁  is  a  fixed  number) a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)%  q = …  ,  = a_(#g, 1, 2)%  q = …  ,  = a_(#q − 2, 1, 2)%  q = a_(#q − 1, 1, 2)%  q = v₂  (where  v₂  is  a  fixed  number)

In the above, % represents the modulo operator, such that α%q signifies the remainder when α is divided by q. Condition 17-10 is also expressible as the following. Here, j is one or two.

<Condition 17-10′>

a_(#k,1,j)%q=v_(j) for ∀k k=0, 1, 2, . . . , q−3, q−2, q−1 (where v_(j) is a fixed number) (k is an integer greater than or equal to zero and less than or equal to q−1, a_(#k,1,j)%q=v_(j) (where v_(j) is a fixed number) holds for all k)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

<Condition 17-11>

v₁≠0, and v₂≠0.

also, v₁≠v₂.

Given that the partial matrix pertaining to the information X₁ must be irregular, the following condition applies.

<Condition 17-12>

a_(#1,1,v)%q=a_(#j,1,v)%q for ∀i∀j, i, j=0, 1, 2, . . . , q−3, q−2, q−1; i≠j.

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#1,1,v)%q=a_(#j,1,v)%q holds for all conforming i and j) This is Condition #Xa.

Also, v is an integer greater than or equal to three and less than or equal to r1, although Condition #Xa does not hold for all v.

Condition 17-12 is also expressible as follows.

<Condition 17-12′>

a_(#i,1,v)%q≠a_(#j,1,v)%q for ∀i∀j, i, j=0, 1, 2, . . . , q−3, q−2, q−1; i≠j (i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,1,v)%q=a_(#j,1,v)%q holds for all conforming i and j) This is Condition #Ya

Also, v is an integer greater than or equal to three and less than or equal to r1, and Condition #Ya holds for all v.

According to the above, the minimum column weighting for the partial matrix pertaining to the information X₁ is three. High error-correction capability is obtainable from the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, and irregular LDPC codes are generatable.

Next the following parity check polynomial is considered for the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, the parity check polynomial having a time-varying period of q and on which the feed-forward LDPC convolutional codes are based has a gth (g=0, 1, . . . , q−1) parity check polynomial that satisfies zero.

[Math. 210]

(D ^(a#g,1,1) +D ^(a#g,1,2) +D ^(a#g,1,3) + . . . +D ^(a#g,1,r1−1) +D ^(a#g,1,r1))X ₁(D)+P(D)=0  (Math. 210)

In Math. 210, a_(#g,p,q) (p=1; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p), y≠z, a_(#g,p,y)≠a_(#g,p,z) holds.

Next, conditions are described for obtaining high error-correction capability from Math. 208 when r1 is four or greater.

When r1 is four or greater, the parity check polynomial satisfying zero for the feed-forward periodic parity check polynomial having a time-varying period of q is applicable as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 211} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} {zeroth}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 211}\text{-}0} \right) \\ {{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + D^{{a{\# 0}},1,3} + \ldots + D^{{a{\# 0}},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a\mspace{14mu} {first}\mspace{14mu} {zero}\text{:}} & \left( {{{Math}.\mspace{14mu} 211}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + D^{{a{\# 1}},1,3} + \ldots + D^{{a{\# 1}},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \text{}\mspace{79mu} {a\mspace{14mu} {second}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 211}\text{-}2} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + D^{{a{\# 2}},1,3} + \ldots + D^{{a{\# 2}},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{85mu} \vdots} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 211}\text{-}g} \right) \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + D^{{a\# g},1,3} + \ldots + D^{{a\# g},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{85mu} \vdots} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {a\mspace{14mu} \left( {q\text{-}2} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 211}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{\left( {D^{{a\# q\text{-}2},1,1} + D^{{a\# q\text{-}2},1,2} + D^{{a\# q\text{-}2},1,3} + \ldots + D^{{a\# q\text{-}2},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\mspace{14mu} \text{}\mspace{79mu} {\left( {q\text{-}1} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 211}\text{-}\left( {q\text{-}1} \right)} \right) \\ {{{\left( {D^{{a\# q\text{-}1},1,1} + D^{{a\# q\text{-}1},1,2} + D^{{a\# q\text{-}1},1,3} + \ldots + D^{{a\# q\text{-}1},1,{r\; 1}}} \right){X_{1}(D)}} + {P(D)}} = 0} & \; \end{matrix}$

Here, high error-correction capability is achievable for the partial matrix pertaining to the information X₁ when the following conditions are taken into consideration in order to have a minimum column weighting of three.

<Condition #17-13>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1)%  q = …  ,  = a_(#g, 1, 1)%  q = …  ,  = a_(#q − 2, 1, 1)%  q = a_(#q − 1, 1, 1)%  q = v₁  (where  v₁  is  a  fixed  number) a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)%  q = …  ,  = a_(#g, 1, 2)%  q = …  ,  = a_(#q − 2, 1, 2)%  q = a_(#q − 1, 1, 2)%  q = v₂  (where  v₂  is  a  fixed  number) a_(#0, 1, 3)%  q = a_(#1, 1, 3)%  q = a_(#2, 1, 3)%  q = a_(#3, 1, 3)%  q = …  ,  = a_(#g, 1, 3)%  q = …  ,  = a_(#q − 2, 1, 3)%  q = a_(#q − 1, 1, 3)%  q = v₃  (where  v₃  is  a  fixed  number)

In the above, % represents the modulo operator, such that α%q signifies the remainder when α is divided by q. Condition 17-13 is also expressible as the following. Here, j is one, two, or three.

<Condition #17-13′>

a_(#k,1,j)%q=v_(j) for ∀k k=0, 1, 2, . . . , q−3, q−2, q−1 (where v_(j) is a fixed number) (k is an integer greater than or equal to zero and less than or equal to q−1, a_(#k,1,j)%q=v_(i) (where v_(j) is a fixed number) holds for all k)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

<Condition #17-14>

also, v₁≠v₂, v₁≠v₃, and v₂≠v₃.

Given that the partial matrix pertaining to the information X₁ must be irregular, the following condition applies.

<Condition 17-15>

a_(#i,1,v)%q=a_(#j,1,v)%q for ∀i∀j, i, j=0, 1, 2, . . . , q−3, q−2, q−1; i#j.

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,1,v)%q=a_(#j,1,v)%q holds for all conforming i and j) This is Condition #Xb.

Also, v is an integer greater than or equal to four and less than or equal to r1, although Condition #Xb does not hold for all v.

Condition 17-15 is also expressible as follows.

<Condition 17-15′>

a_(#i,1,v)%q f a_(#j,1,v)%q for ∀i∀j, i, j=0, 1, 2, . . . , q−3, q−2, q−1; i≠j (i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,1,v)%q=a_(#j,1,v)%q holds for all conforming i and j) This is Condition #Yb.

Also, v is an integer greater than or equal to four and less than or equal to r1, and Condition #Yb holds for all v.

According to the above, the minimum column weighting for the partial matrix pertaining to the information X₁ is three. High error-correction capability is obtainable from the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, and irregular LDPC codes are generatable.

For code generated using any of the code generation methods described in the present Embodiment for the concatenate code concatenating an accumulator, via an interleaver, feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used as described in the present Embodiment using FIG. 108, belief propagation decoding, such as the BP decoding given in Non-Patent Literature 4 to 6, sum-product decoding, min-sum decoding, offset BP decoding, Normalized BP decoding, Shuffled BP decoding, and Layered BP decoding in which scheduling is performed is performable based on the parity check matrix generated using the generation method for the parity check matrix described in the present Embodiment. Accordingly, high-speed decoding is achievable, and as a result, high error-correction capability is obtained.

As described above, by applying the generation method, encoder, parity check matrix configuration, decoding method, and so on to the concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, a decoding method using a belief propagation algorithm for which high-speed decoding is achievable can be applied, and as a result, high error-correction capability is obtained. The elements described in the present Embodiment are intended as examples. Other methods can also be used to generate error correction code that is able to achieve high error-correction capability.

Although the present Embodiment describes a generation method, an encoder, a parity check matrix configuration, a decoding method, and so on for concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of ½ where the tail-biting scheme is used, the present Embodiment is identically applicable to generating concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial having a coding rate of (n−1)/n where the tail-biting scheme is used, and the present Embodiment is further identically applicable to an encoder, a parity check matrix configuration, a decoding method, and so on for such concatenate code. Accordingly, the key to the realization of applying a decoding method using a belief propagation algorithm for which high-speed decoding is achievable to obtain high error-correction capability is the use of concatenate code concatenating an accumulator, via an interleaver, with feed-forward LDPC convolutional codes based on a parity check polynomial where the tail-biting scheme is used.

Embodiment 18

In Embodiment 17, a description was made of a concatenated code contatenating an accumulator, via an interleaver, with a feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme with a coding rate of ½. In the present embodiment, in connection with Embodiment 17, a description is made of a concatenated code contatenating an accumulator, via an interleaver, with a feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n.

The following describes a code configuration method as details of the above invention. FIG. 113 is a block diagram showing an example of configuration of an encoder for a concatenated code contatenating an accumulator, via an interleaver, with a feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme in the present embodiment. In the example shown in FIG. 113, the coding rate for the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme is (n−1)/n, the block size of the concatenated code is N bits, the number of pieces of information in one block is (n−1)×M bits, and the number of parities in one block is M bits. Thus a relationship N=n×M holds true.

Here, it is assumed as follows:

Information  X₁  included  in  the  i-th  block  is X_(i, 1, 0), X_(i, 1, 1), X_(i, 1, 2), …  , X_(i, 1, j)(j = 0, 1, 2, …  , M − 3, M − 2, M − 1), …  , X_(i, 1, M − 2), X_(i, 1, M − 1); Information  X₂  included  in  the  i-th  block  is X_(i, 2, 0), X_(i, 2, 1), X_(i, 2, 2), …  , X_(i, 2, j)(j = 0, 1, 2, …  , M − 3, M − 2, M − 1), …  , X_(i, 2, M − 2), X_(i, 2, M − 1); ⋮ Information  X_(k)  included  in  the  i-th  block  is X_(i, k, 0), X_(i, k, 1), X_(i, k, 2), …  , X_(i, k, j)(j = 0, 1, 2, …  , M − 3, M − 2, M − 1), …  , X_(i, k, M − 2), X_(i, k, M − 1)  (k = 1, 2, …  , n − 2, n − 1); ⋮ Information  X_(n − 1)  included  in  the  i-th  block  is X_(i, n − 1, 0), X_(i, n − 1, 1), X_(i, n − 1, 2), …  , X_(i, n − 1, j)(j = 0, 1, 2, …  , M − 3, M − 2, M − 1), …  , X_(i, n − 1, M − 2), X_(i, n − 1, M − 1).

A processing section 11300_1 relating to the information X₁ includes an X₁ computing section 11302_1. In the tail-biting scheme, when performing encoding with respect to the i-th block, the X₁ computing section 11302_1 receives information X_(i,1,0), X_(i,1,1), X_(i,1,2), . . . , X_(i,1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,1M−2), X_(i,1,M−1) (11301_1) as input, performs processing relating to the information X₁, and outputs data after the computation A_(i,1,0), A_(i,1,1), A_(i,1,2), . . . , A_(i,1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , A_(i,1,M−2), A_(i,1,M−1) (11303_1).

A processing section 11300_2 relating to the information X₂ includes an X₂ computing section 11302_2. In the tail-biting scheme, when performing encoding with respect to the i-th block, the X₂ computing section 11302_2 receives information X_(i,2,0), X_(i,2,1), X_(i,2,2), . . . , X_(i,2,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,2,M−2), X_(i,2,M−1) (11301_2) as input, performs processing relating to the information X₂, and outputs data after the computation A_(i,2,0), A_(i,2,1), A_(i,2,2), . . . , A_(i,2,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , A_(i,2,M−2), A_(i,2,M−1) (11303_2).

A processing section 11300 _(—) n-1 relating to the information X_(n−1) includes an X_(n−1) computing section 11302 _(—) n-1. In the tail-biting scheme, when performing encoding with respect to the i-th block, the X_(n−1) computing section 11302 _(—) n-1 receives information X_(i,n−1,0), X_(i,n−1,1), X_(i,n−1,2), . . . , X_(i,n−1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,n−1,M−2), X_(i,n−1,M−1) (11301 _(—) n-1) as input, performs processing relating to the information X_(n−1), and outputs data after the computation A_(i,n−1,0), A_(i,n−1), A_(i,n−1,2), . . . , A_(i,n−1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , A_(i,n−1,M−2), A_(i,n−1,M−1) (11303 _(—) n-1).

Note that, although not illustrated in FIG. 113, eventually, a processing section 11300 _(—) k relating to the information X_(k) includes an X_(k) computing section 11302 _(—) k. In the tail-biting scheme, when performing encoding with respect to the i-th block, the X_(k) computing section 11302 _(—) k receives information X_(1,k,0), X_(i,k,1), X_(i,k,2), . . . , X_(1,k,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(1,k,M−2), X_(1,k,M−1) (11301 _(—) k) as input, performs processing relating to the information X_(k), and outputs data after the computation A_(i,k,0), A_(i,k,1), A_(i,k,2), . . . , A_(i,k,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , A_(i,k,M−2), A_(i,k,M−1) (11303 _(—) k). (k=1, 2, 3, . . . , n−2, n−1 (where k is an integer equal to or greater than 1 and equal to or smaller than n−1)) is to be present in FIG. 113.

Details of the above structure and operation are described below with reference to FIG. 114.

Also, since the encoder shown in FIG. 113 uses systematic codes, the following are output as well:

Information  X₁  as  X_(i, 1, 0), X_(i, 1, 1), X_(i, 1, 2), …  , X_(i, 1, j)(j = 0, 1, 2, …  , M − 3, M − 2, M − 1), …  , X_(i, 1, M − 2), X_(i, 1, M − 1); Information  X₂  as  X_(i, 2, 0), X_(i, 2, 1), X_(i, 2, 2), …  , X_(i, 2, j)(j = 0, 1, 2, …  , M − 3, M − 2, M − 1), …  , X_(i, 2, M − 2), X_(i, 2, M − 1); ⋮ Information  X_(k)  as  X_(i, k, 0), X_(i, k, 1), X_(i, k, 2), …  , X_(i, k, j)(j = 0, 1, 2, …  , M − 3, M − 2, M − 1), …  , X_(i, k, M − 2), X_(i, k, M − 1)  (k = 1, 2, …  , n − 2, n − 1); ⋮ Information  X_(n − 1)  as  X_(i, n − 1, 0), X_(i, n − 1, 1), X_(i, n − 1, 2), …  , X_(i, n − 1, j)(j = 0, 1, 2, …  , M − 3, M − 2, M − 1), …  , X_(i, n − 1, M − 2), X_(i, n − 1, M − 1).

A modulo 2 adder (namely, exclusive OR operator) 11304 inputs the data after computation 11303_1, 1103_2, . . . , 1103 _(—) k (k=1, 2, . . . , n−2, n−1), . . . 1103 _(—) n-1, adds up modulo 2 (namely, a remainder after dividing by 2) values (namely, operates an exclusive OR), and outputs the data after computation, namely, parity 8803 (P_(i,c,j)) after LDPC convolutional coding.

The following describes the operation of the modulo 2 adder (namely, exclusive OR operator) 11304 in the case of, for example, the i-th block and time j (j=0, 1, 2, . . . , M−3, M−2, M−1).

For the i-th block at the time j, the data after computation 11303_1 is A_(i,1,j), the data after computation 11303_2 is A_(i,2,j), the data after computation 11303 _(—) k is A_(i,k,j), . . . , the data after computation 11303 _(—) n-1 is A_(i,n−1,j), and thus the modulo 2 adder (namely, exclusive OR operator) 11304 obtains the parity 8803

(P_(i,c,j)) after LDPC convolutional coding for the i-th block at the time j as follows.

[Math. 212]

P _(i,c,j) =A _(i,1,j) ⊕A _(i,2,j) ⊕ . . . ⊕A _(i,n−2,j) ⊕A _(i,n−1,j)  (Math. 212)

In the above expression, ⊕ denotes exclusive OR.

The interleaver 8804 inputs parity P_(i,c,0), P_(i,c,1), P_(i,c,2), . . . , P_(i,c,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , P_(i,c,M−2), P_(i,c,M−1) (8803) after LDPC convolutional coding, performs reordering (after accumulation), and outputs a parity 8805 after LDPC convolutional coding after reordering.

The accumulator 8806 inputs the parity 8805 after LDPC convolutional coding after reordering, accumulates, and outputs a parity 8807 after accumulation.

Here, the parity 8807 after accumulation is the parity that is to be outputted from the encoder shown in FIG. 113, and when a parity of the i-th block is represented as P_(i,0), P_(i,1), P_(i,2), . . . , P_(i,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , P_(i,M−2), P_(i,M−1), the codeword of the i-th block is X_(i,1,0), X_(i,1,1), X_(i,1,2), . . . , X_(i,1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,1,M−2), X_(i,1,M−1), X_(i,2,0), X_(i,1,1), X_(i,2,2), . . . , X_(1,2,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(1,2,M−2), X_(1,2,M−1), . . . , X_(1,n−2,0), X_(1,n−2,1), X_(1,n−2,2), . . . , X_(1,n−2,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,n−2,M−2), X_(i,n−2,M−1), X_(i,n−1,0), X_(i,n−1,1), X_(1,n−1,2), . . . , X_(i,n−1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,n−1,M−2), X_(i,n−1,M−1), P_(i,0), P_(i,1), P_(i,2), . . . , P_(i,j) (J=0, 1, 2, . . . , M−3, M−2, M−1), . . . , P_(i,M−2), P_(i,M−1).

In FIG. 113, 11305 denotes the encoder for the feedforward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme. The following describes, with reference to FIG. 114, the operation of the processing section 11300_1 pertaining to information X₁, the processing section 11300_2 pertaining to information X₂, . . . , the processing section 11300 _(—) n-1 pertaining to information X_(n−1) in the encoder 11305 for the feedforward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme.

FIG. 114 shows a configuration of a processing section 11300 _(—) k (k=1, 2, . . . , n−2, n−1) pertaining to information X_(k) shown in FIG. 113 in a code of the feedforward LDPC convolutional code that is based on the parity check polynomial.

In a processing section pertaining to information X_(k), a second shift register 11402-2 inputs a value outputted from a first shift register 11402-1. Also, a third shift register 11402-3 inputs a value outputted from a second shift register 11402-2. Accordingly, a Y shift register 11402-Y inputs a value outputted from a Y−1 shift register 11402-(Y−1). In the above description, Y=2, 3, 4, . . . , L_(k)−2, L_(k)−1, L_(k).

Each of first shift register 11402-1 through L_(k)-th shift register 11402-L_(k) is a register that holds v_(1,t−i) (i=1, . . . , L_(k)), and at the timing when it receives the next input, outputs a currently held value to an adjacent shift register on the right-hand side, and newly holds a value outputted from an adjacent shift register on the left-hand side. Note that, with regard to the initial state of the shift registers, since it is the feedforward LDPC convolutional code using the tail-biting, the initial value of the S_(k)-th register in the i-th block is X_(i,k,M−Sk) (S_(k)=1, 2, 3, 4, . . . , L_(k)−2, L_(k)−1, L_(k)).

The weight multipliers 11403-0 to 11403-L_(k) switch the value of h_(k) ^((m)) to zero or one in accordance with a control signal outputted from the weight control section 11405 (m=0, 1, . . . , L_(k)).

Based on a parity check polynomial for LDPC convolutional code stored internally (or a parity check matrix), the weight control section 11405 outputs a value of h_(k) ^((m)) at that timing, and supplies it to the weight multipliers 11403-0 to 11403-L_(k).

A modulo 2 adder (namely, exclusive OR operator) 11406 receives outputs of the weight multipliers 11403-0 to 11403-L_(k), adds up computation results of modulo 2 (namely, a remainder after dividing by 2) (namely, operates an exclusive OR), and computes and outputs the data after computation A_(i,k,j) (11407). Note that the data after computation A_(i,k,j) (11407) corresponds to the data after computation A_(i,k,j) (11303 _(—) k) shown in FIG. 113.

Each of the first shift register 11402-1 through L_(k)-th shift register 11402-L_(k) holding v_(1,t−i) (i=1, . . . , L_(k)) sets an initial value for each block. Accordingly, for example, when the (i+1)th block is encoded, the initial value of the S_(k)-th register is X_(i+1,k,M−Sk).

With the processing sections pertaining to information X_(k) shown in FIG. 114, the encoder 11305, which is for the feedforward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of FIG. 113, can perform LDPC-CC encoding in accordance with a parity check polynomial for feedforward LDPC convolutional code that is based on parity check polynomial (or a parity check matrix for feedforward LDPC convolutional code that is based on parity check polynomial).

If the arrangement of rows of a parity check matrix held by the weight control section 11405 differs on a row-by-row basis, the LDPC-CC encoder 11305 is a time-varying convolutional encoder, and in particular, when the arrangement of rows of the parity check matrix switch regularly at predetermined periods (this is described in the above embodiment), the LDPC-CC encoder 11305 is a periodic time-varying convolutional encoder.

The accumulator 8806 shown in FIG. 113 inputs the parity 8805 after LDPC convolutional coding after reordering. The accumulator 8806 sets 0 as an initial value of the shift register 8814 when the i-th block is processed. Note that the initial value of the shift register 8814 is set for each block. Thus, for example, when the (i+1)th block is encoded, 0 is set as an initial value of the shift register 8814.

A modulo 2 adder (namely, exclusive OR operator) 8815 receives the parity 8805 after LDPC convolutional coding after reordering and output of the shift register 8814, adds up modulo 2 (namely, a remainder after dividing by 2) values (namely, operates an exclusive OR), and outputs parity after accumulation 8807. As described in detail below, use of the above accumulator causes one column in the parity portion of the parity check matrix to have a column weight 1 and the remaining columns a column weight 2, wherein the column weight is the number of values 1 in each column. This contributes to achieving high error-correction capability when decoding is performed using a belief propagation algorithm based on the parity check matrix.

In FIG. 113, 8816 indicates details of the operation of an interleaver 8804. The interleaver, namely, an accumulation and reordering section 8818 inputs a parity after LDPC convolutional encoding P_(i,c,0), P_(i,c,1), P_(i,c,2), . . . ,P_(i,c,M−3), P_(i,c,M−2), P_(i,c,M−1), accumulates the input data, and then performs reordering. Thus the accumulation and reordering section 8818 changes the order in which P_(i,c,0), P_(i,c,1), P_(i,c,2), . . . , P_(i,c,M−3), P_(i,c,M−2), P_(i,c,M−1) are outputted. For example, they are outputted in the order of P_(i,c,254), P_(i,c,47), . . . , P_(i,c,M−1), . . . , P_(i,c,0), . . . .

Note that the concatenated code using an accumulator shown in FIG. 113 is mentioned in, for example, Non-Patent Literatures 31 to 35. However, none of the concatenated code mentioned in Non-Patent Literatures 31 to 35 uses the decoding using a belief propagation algorithm based on the parity check matrix that is suited for the high-speed decoding. In that case, realization of a high-speed decoding described as a problem is difficult. On the other hand, the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme is used in the concatenated code contatenating an accumulator, via an interleaver, with a feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme, as described in the present embodiment. This makes it possible to apply decoding using a belief propagation algorithm based on a parity check matrix suitable for a high-speed decoding, and makes it possible to realize high error-correction capability. Also, Non-Patent Literatures 31 to 35 lack any disclosure, teaching or even suggestion of a design of a concatenated code contatenating LDPC convolutional code with an accumulator.

FIG. 89 illustrates the configuration of an accumulator that is different from the accumulator 8806 shown in FIG. 113. In FIG. 113, the accumulator shown in FIG. 89 may be used as a substitute for the accumulator 8806.

The accumulator 8900 shown in FIG. 89 inputs and accumulates the parity 8805 (8901) after LDPC convolutional coding after reordering shown in FIG. 113, and outputs a parity 8807 after accumulation. In FIG. 89, a second shift register 8902-2 inputs a value outputted from a first shift register 8902-1. Also, a third shift register 8902-3 inputs a value outputted from the second shift register 8902-2. Thus a Y-th shift register 8902-Y inputs a value outputted from a (Y−1)th shift register 8902-(Y−1). In the above description, Y=2, 3, 4, . . . , R-2, R-1, R.

Each of first shift register 8902-1 through R-th shift register 8902-R is a register that holds v_(1,t−i) (i=1, . . . , R), and at the timing when it receives the next input, outputs a currently held value to an adjacent shift register on the right-hand side, and newly holds a value output from an adjacent shift register on the left-hand side. Note that the accumulator 8900 sets 0 as an initial value of each of the first shift register 8902-1 through R-th shift register 8902-R when the i-th block is processed. Note that the initial value of each of the first shift register 8902-1 through R-th shift register 8902-R is set for each block. Thus, for example, when the (i+1)th block is encoded, 0 is set as an initial value of each of the first shift register 8902-1 through R-th shift register 8902-R.

The weight multipliers 8903-1 to 8903-R switch the value of h₁ ^((m)) to zero or one in accordance with a control signal outputted from the weight control section 8904 (m=1, . . . , R).

Based on a partial matrix related to an accumulator in the parity check matrix stored internally, the weight control section 8904 outputs a value of h₁ ^((m)) at that timing, and supplies it to the weight multipliers 8903-1 to 8903-R.

A modulo 2 adder (namely, exclusive OR operator) 8905 receives outputs of the weight multipliers 8903-1 to 8903-R and the parity 8805 (8901) after LDPC convolutional coding after reordering shown in FIG. 113, adds up computation results of modulo 2 (namely, a remainder after dividing by 2) (namely, operates an exclusive OR), and outputs parity after accumulation 8807 (8902).

The accumulator 9000 shown in FIG. 90 inputs and accumulates the parity 8805 (8901) after LDPC convolutional coding after reordering shown in FIG. 113, and outputs a parity 8807 (8902) after accumulation. Note that elements in FIG. 90 that operate in the same manner as those in FIG. 89 are assigned the same reference signs. The accumulator 9000 in FIG. 90 differs from the accumulator 8900 in FIG. 89 in that h₁ ⁽¹⁾ of the weight multiplier 8903-1 in FIG. 89 is fixed to 1. Use of the above accumulator causes one column in the parity portion of the parity check matrix to have a column weight 1 and the remaining columns a column weight 2 or more, wherein the column weight is the number of values 1 in each column. This contributes to achieving high error-correction capability when decoding is performed using a belief propagation algorithm based on the parity check matrix.

Next, a description is given of the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme, in an encoder 11305 for the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme shown in FIG. 113.

The time-varying LDPC code that is based on a parity check polynomial has been described in detail in the present description. Also, the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme has been described in Embodiment 15, but the present embodiment describes it again, and describes one example of a requirement for the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme for achieving high error-correction capability in the concatenated code in the present embodiment.

First, a description is given of the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n described in Non-Patent Literature 20, in particular, a feedforward LDPC-CC that is based on a parity check polynomial having a coding rate of(n−1)/n.

Information bit of X₁, X₂, . . . , X_(n−1) and a bit of parity bit P at time j are represented as X_(1,j), X_(2,j), . . . , X_(n−1,j), respectively. A vector u_(j) at the time j is represented as u_(j)=(X_(1,j), X_(2,j), . . . , X_(n−1,j), P_(j). Also, an encoded sequence is represented as u=(u₀, u₁, . . . , uj,)^(T). Assuming that a delay operator is D, a polynomial of information bit X₁, X₂, . . . , X_(n−1) is represented as X₁(D), X₂(D), . . . , X_(n−1)(D), and a polynomial of parity bit P is represented as P(D). Here, a parity check polynomial satisfying zero represented as shown in Math. 213 is considered, in the feedforward LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 213} \right\rbrack} & \; \\ {{{\left( {D^{a_{1,1}} + D^{a_{1,2}} + \ldots + D^{a_{1},r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{a_{2,1}} + D^{a_{2,2}} + \ldots + D^{a_{2},r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{a_{{n - 1},1}} + D^{a_{{n - 1},2}} + \ldots + D^{a_{n - 1},r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 213} \right) \end{matrix}$

In Math. 213, it is assumed that a_(p,q) (p=1, 2, . . . , n−1; q=1, 2, . . . , r_(p)) is a natural number. It is also assumed that a_(p,y)#a_(p,z) is satisfied for y, z=1, 2, . . . , r_(p), ^(∀)(y, z), wherein y≠z.

To create an LDPC-CC having a coding rate of R=(n−1)/n and a time-varying period of m, a parity check polynomial satisfying zero based on Math. 213 is prepared. Here, the i-th (i=0, 1, . . . , m−1) parity check polynomial satisfying zero is represented as shown in Math. 214.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 214} \right\rbrack} & \; \\ {{{{A_{{X\; 1},i}(D)}{X_{1}(D)}} + {{A_{{X\; 2},i}(D)}{X_{2}(D)}} + \ldots + {{A_{{{Xn} - 1},i}(D)}{X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 214} \right) \end{matrix}$

In Math. 214, the maximum degree of D in A_(Xδ,i) (D) (8=1, 2, . . . , n−1) is represented as Γ_(Xδ,i). Also, the maximum value of Γ_(Xδ,i) is represented as Γ_(i). Also, the maximum value of Γ_(i) (i=0, 1, . . . , m−1) is represented as F. When an encoded sequence u is taken into account and F is used, a vector h_(i) corresponding to the i-th parity check polynomial is represented as shown in Math. 215.

[Math. 215]

h _(i) =[h _(i,Γ) ,h _(i,Γ−1), . . . ,h_(i,1) ,h _(i,0])  (Math. 215)

In Math. 215, h_(i,v) (v=0, 1, . . . , Γ) is a vector of 1×n, and is represented as [α_(i,v,X1), α_(i,v,X2), . . . , α_(i,v,Xn−1), β_(i,v)]. This is because the parity check polynomial in Math. 214 has α_(i,v,Xw)D^(v)X_(w)(D) and D⁰P(D) (w=1, 2, . . . , n−1, and α_(i,v,Xw)ε[0,1]). In this case, a parity check polynomial satisfying zero based on Math. 214 has D⁰X₁(D), D⁰X₂(D), . . . , D⁰X_(n−1)(D) and D⁰P(D), and thus satisfies Math. 216.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 216} \right\rbrack & \; \\ {h_{i,0} = \left\lbrack \underset{\underset{n}{}}{1\mspace{14mu} \ldots \mspace{14mu} 1} \right\rbrack} & \left( {{Math}.\mspace{14mu} 216} \right) \end{matrix}$

By using Math. 215, a parity check matrix of LDPC-CC that is based on a parity check polynomial having a coding rate of R=(n−1)/n and a time-varying period of m is represented as shown in Math. 217.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 217} \right\rbrack & \; \\ {H = \begin{bmatrix} \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \; & \; \\ \; & h_{0,\Gamma} & h_{0,{\Gamma - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,0} & \; & \; & \; & \; & \; & \; & \; \\ \; & \; & h_{1,\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{1,1} & h_{1,0} & \; & \; & \; & \; & \; & \; \\ \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; \\ \; & \; & \; & \; & h_{{m - 1},\Gamma} & h_{{m - 1},{\Gamma - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},0} & \; & \; & \; & \; \\ \; & \; & \; & \; & \; & h_{0,\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,1} & h_{0,0} & \; & \; & \; \\ \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; \\ \; & \; & \; & \; & \; & \; & \; & h_{{m - 1},\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},0} & \; \\ \; & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \; & \ddots \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 217} \right) \end{matrix}$

In Math. 217, in the case of an endless-length LDPC-CC, Λ(k)=Λ(k+m) is satisfied for ^(∀)k. In the above expression, Λ(k) corresponds to h_(i) in the k-th row of the parity check matrix.

Note that, whether tail-biting is performed or not, assuming that the Y-th row of a parity check matrix of LDPC-CC that is based on a parity check polynomial having a time-varying period of m is a row corresponding to a parity check polynomial satisfying the 0th zero of LDPC-CC having a time-varying period of m, the (Y+1)th row of the parity check matrix is a row corresponding to a parity check polynomial satisfying the 1st zero of LDPC-CC having the time-varying period of m, the (Y+2)th row of the parity check matrix is a row corresponding to a parity check polynomial satisfying the 2nd zero of LDPC-CC having the time-varying period of m, . . . , the (Y+j)th row of the parity check matrix is a row corresponding to a parity check polynomial satisfying the j-th zero of LDPC-CC having the time-varying period of m (j=0, 1, 2, 3, . . . , m−3, m−2, m−1), . . . , the (Y+m−1)th row of the parity check matrix is a row corresponding to a parity check polynomial satisfying the (m−1)th zero of LDPC-CC having the time varying period of m.

In the above description, Math. 213 is used as a base parity check polynomial. However, the base parity check polynomial is not limited to Math. 213, but may be, for example, a parity check polynomial satisfying zero such as Math. 218.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 218} \right\rbrack} & \; \\ {{{\left( {D^{a_{1,1}} + D^{a_{1,2}} + \ldots + D^{a_{1},r_{1}}} \right){X_{1}(D)}} + {\left( {D^{a_{2,1}} + D^{a_{2,2}} + \ldots + D^{a_{2},r_{2}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{a_{{n - 1},1}} + D^{a_{{n - 1},2}} + \ldots + D^{a_{n - 1},r_{n - 1}}} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 218} \right) \end{matrix}$

In Math. 218, it is assumed that a_(p,q) (p=1, 2, . . . , n−1; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. It is also assumed that a_(p,y)≠a_(p,z) is satisfied for y, z=1, 2, . . . , rp, ^(∀)(y, z), wherein y≠z.

Note that, in the concatenated code contatenating an accumulator, via an interleaver, with a feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme, in order to achieve high error-correction capability: each of r₁, r₂, . . . , r_(n−2), r_(n−1) in a parity check polynomial satisfying zero represented as shown in Math. 213 may be three or greater, namely, r_(k) may satisfy three or greater for each value of k, wherein k is an integer equal to or greater than 1 and equal to or smaller than n−1; or each of r, r₂, . . . , r_(n−2), r_(n−1) in a parity check polynomial satisfying zero represented as shown in Math. 218 may be four or greater, namely, r_(k) may satisfy four or greater for each value of k, wherein k is an integer equal to or greater than 1 and equal to or smaller than n−1.

Accordingly, by using Math. 213 as a reference, the g-th (g=0, 1, . . . , q−1) parity check polynomial (refer to Math. 128) satisfying zero in a feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, which is used in the concatenated code of the present embodiment, is represented as shown in Math. 219.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 219} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + \ldots + D^{{a\# g},{n - 1},r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 219} \right) \end{matrix}$

In Math. 219, it is assumed that a_(#g,p,q) (p=1, 2, . . . , n−1; q=1, 2, . . . , r_(p)) is a natural number. It is also assumed that a_(#g,p,y)≠a_(#g,p,z) is satisfied for y, z=1, 2, . . . , r_(p), ^(∀)(y, z), wherein y≠z. Here, by setting each of r₁, r₂, . . . , r_(n−2), r_(n−1) to three or greater, high error-correction capability can be achieved.

Accordingly, parity check polynomials satisfying zero in a feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q are provided as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 220} \right\rbrack} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {{the}\mspace{14mu} 0{th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 220}\text{-}0} \right) \\ {{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 0}},{n - 1},1} + D^{{a{\# 0}},{n - 1},2} + \ldots + D^{{a{\# 0}},{n - 1},r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {{the}\mspace{14mu} 1{st}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 220}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 1}},{n - 1},1} + D^{{a{\# 1}},{n - 1},2} + \ldots + D^{{a{\# 1}},{n - 1},r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \text{}\mspace{79mu} {{the}\mspace{14mu} 2{nd}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 220}\text{-}2} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 2}},{n - 1},1} + D^{{a{\# 2}},{n - 1},2} + \ldots + D^{{a{\# 2}},{n - 1},r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{85mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {{the}\mspace{14mu} g\text{-}{th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 220}\text{-}g} \right) \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + \ldots + D^{{a\# g},{n - 1},r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{85mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {{the}\mspace{14mu} \left( {q\text{-}2} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 220}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{\left( {D^{{a\# {({q\text{-}2})}},1,1} + D^{{a\# {({q\text{-}2})}},1,2} + \ldots + D^{{a\# {({q\text{-}2})}},1,r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q\text{-}2})}},2,1} + D^{{a\# {({q\text{-}2})}},2,2} + \ldots + D^{{a\# {({q\text{-}2})}},2,r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# {({q\text{-}2})}},{n - 1},1} + D^{{a\# {({q\text{-}2})}},{n - 1},2} + \ldots + D^{{a\# {({q\text{-}2})}},{n - 1},r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{79mu} {{the}\mspace{14mu} \left( {q\text{-}1} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 220}\text{-}\left( {q\text{-}1} \right)} \right) \\ {{{\left( {D^{{a\# {({q\text{-}1})}},1,1} + D^{{a\# {({q\text{-}1})}},1,2} + \ldots + D^{{a\# {({q\text{-}1})}},1,r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q\text{-}1})}},2,1} + D^{{a\# {({q\text{-}1})}},2,2} + \ldots + D^{{a\# {({q\text{-}1})}},2,r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# {({q\text{-}1})}},{n - 1},1} + D^{{a\# {({q\text{-}1})}},{n - 1},2} + \ldots + D^{{a\# {({q\text{-}1})}},{n - 1},r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \; \end{matrix}$

Here, in the above parity check polynomials, each of r₁, r₂, . . . , r−2, r_(n−1) is set to three or greater, and thus there are four or more terms of X₁(D), X₂(D), . . . , X_(n−1)(D) in each of Math. 220-0 through Math. 220-(q−1) (each parity check polynomial satisfying zero).

Also, by using Math. 219 as a reference, the g-th (g=0, 1, . . . , q−1) parity check polynomial (refer to Math. 128) satisfying zero in a feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, which is used in the concatenated code of the present embodiment, is represented as shown in Math. 221.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 221} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,r_{2}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + \ldots + D^{{a\# g},{n - 1},r_{n - 1}}} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 221} \right) \end{matrix}$

In Math. 221, it is assumed that a_(#g,p,q) (p=1, 2, . . . , n−1; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. It is also assumed that a_(#g,p,y)≠a_(#g,p,z) is satisfied for y, z=1, 2, . . . , rp, ^(∀)(y, z), wherein y≠z. Here, by setting each of r₁, r₂, . . . , r_(n−2), r_(n−1) to four or greater, high error-correction capability can be achieved. Accordingly, parity check polynomials satisfying zero in a feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q are provided as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 222} \right\rbrack} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {{the}\mspace{14mu} 0{th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 222}\text{-}0} \right) \\ {{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,r_{2}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 0}},{n - 1},1} + D^{{a{\# 0}},{n - 1},2} + \ldots + D^{{a{\# 0}},{n - 1},r_{n - 1}}} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {{the}\mspace{14mu} 1{st}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 222}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,r_{2}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 1}},{n - 1},1} + D^{{a{\# 1}},{n - 1},2} + \ldots + D^{{a{\# 1}},{n - 1},r_{n - 1}}} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \text{}\mspace{79mu} {{the}\mspace{14mu} 2{nd}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 222}\text{-}2} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,r_{2}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 2}},{n - 1},1} + D^{{a{\# 2}},{n - 1},2} + \ldots + D^{{a{\# 2}},{n - 1},r_{n - 1}}} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{85mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {{the}\mspace{14mu} g\text{-}{th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 222}\text{-}g} \right) \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,r_{2}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + \ldots + D^{{a\# g},{n - 1},r_{n - 1}}} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{85mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{31mu} \mspace{79mu} {{the}\mspace{14mu} \left( {q\text{-}2} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 222}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{\left( {D^{{a\# {({q\text{-}2})}},1,1} + D^{{a\# {({q\text{-}2})}},1,2} + \ldots + D^{{a\# {({q\text{-}2})}},1,r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q\text{-}2})}},2,1} + D^{{a\# {({q\text{-}2})}},2,2} + \ldots + D^{{a\# {({q\text{-}2})}},2,r_{2}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# {({q\text{-}2})}},{n - 1},1} + D^{{a\# {({q\text{-}2})}},{n - 1},2} + \ldots + D^{{a\# {({q\text{-}2})}},{n - 1},r_{n - 1}}} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{79mu} {{the}\mspace{14mu} \left( {q\text{-}1} \right){th}\mspace{14mu} {zero}\text{:}}}} & \left( {{{Math}.\mspace{14mu} 220}\text{-}\left( {q\text{-}1} \right)} \right) \\ {{{\left( {D^{{a\# {({q\text{-}1})}},1,1} + D^{{a\# {({q\text{-}1})}},1,2} + \ldots + D^{{a\# {({q\text{-}1})}},1,r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q\text{-}1})}},2,1} + D^{{a\# {({q\text{-}1})}},2,2} + \ldots + D^{{a\# {({q\text{-}1})}},2,r_{2}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# {({q\text{-}1})}},{n - 1},1} + D^{{a\# {({q\text{-}1})}},{n - 1},2} + \ldots + D^{{a\# {({q\text{-}1})}},{n - 1},r_{n - 1}}} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \; \end{matrix}$

Here, in the above parity check polynomials, when each of r₁, r₂, . . . , r_(n−2), r_(n−1) is set to four or greater, there are four or more terms of X₁(D), X₂(D), . . . , X_(n−1)(D) in each of Math. 222-0 through Math. 222-(q−1) (each parity check polynomial satisfying zero).

As described above, it is likely to be able to achieve high error-correction capability when there are four or more terms of X₁(D), X₂(D), . . . , X_(n−1)(D) in each of q parity check polynomials satisfying zero in a feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, which is used in the concatenated code of the present embodiment.

Also, in order to satisfy the conditions described in Embodiment 1, there must be four or more terms of X₁(D), X₂(D), . . . , X_(n−1)(D). In that case, the time-varying period needs to satisfy four or more. If this condition is not satisfied, any of the conditions described in Embodiment 1 may not be satisfied, which may lead to reduction in the possibility that high error-correction capability is achieved. Furthermore, for example, as described in Embodiment 6, in order to achieve the effect of having increased the time-varying period when a Tanner graph is drawn, the time-varying period may be an odd number since there are four or more terms of X₁(D), X₂(D), . . . , X_(n−1)(D). Other effective conditions are as follows.

(1) The time-varying period q is a prime number.

(2) The time-varying period q is an odd number and the number of divisors of q is small.

(3) The time-varying period q is assumed to be α×β,

where α and β are odd numbers other than one and are prime numbers.

(4) The time-varying period q is assumed to be α^(n),

where α is an odd number other than one and is a prime number, and n is an integer equal to or greater than two.

20, (5) The time-varying period q is assumed to be α×β×γ,

where α, β and γ are odd numbers other than one and are prime numbers.

(6) The time-varying period q is assumed to be α×β×γ×δ,

where α, β, γ and δ are odd numbers other than one and are prime numbers. These are effective conditions. However, the effect described in Embodiment 6 can be produced if the time-varying period q is large. Thus it is not that a code having high error-correction capability cannot be achieved if the time-varying period q is an even number.

For example, when the time-varying period q is an even number, the following conditions may be satisfied.

(7) The time-varying period q is assumed to be 2^(g)×K,

where K is a prime number and g is an integer other than one.

(8) The time-varying period q is assumed to be 2^(g)×L,

where L is an odd number and the number of divisors of L is small, and g is an integer equal to or greater than one.

(9) The time-varying period q is assumed to be 2^(g)×α×β,

where α and β are odd numbers other than one, and α and β are prime numbers, and g is an integer equal to or greater than one.

(10) The time-varying period q is assumed to be 2^(g)×α^(n),

where α is an odd number other than one, and α is a prime number, and n is an integer equal to or greater than two, and g is an integer equal to or greater than one.

(11) The time-varying period q is assumed to be 2^(g)×α×β×γ,

where α, β and γ are odd numbers other than one, and α, β and γ are prime numbers, and g is an integer equal to or greater than one.

(12) The time-varying period q is assumed to be 2^(g)×α×β×γ×δ, where α, β, γ and δ are odd numbers other than one, and α, β, γ and δ are prime numbers, and g is an integer equal to or greater than one.

However, it is likely to be able to achieve high error-correction capability even if the time-varying period q is an odd number not satisfying the above (1) to (6). Also, it is likely to be able to achieve high error-correction capability even if the time-varying period q is an even number not satisfying the above (7) to (12).

The following describes the tail-biting scheme of a feedforward time-varying LDPC-CC that is based on a parity check polynomial. (As one example, the parity check polynomial of Math. 219 is used.)

[Tail-Biting Method]

The above-described g-th (g=0, 1, . . . , q−1) parity check polynomial (refer to Math. 128) satisfying zero in a feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, which is used in the concatenated code of the present embodiment, is represented as shown in Math. 223.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 223} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + \ldots + D^{{a\# g},{n - 1},r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 223} \right) \end{matrix}$

In Math. 223, it is assumed that a_(#g,p,q) (p=1, 2, . . . , n−1; q=1, 2, . . . , r_(p)) is a natural number. It is also assumed that a_(#g,p,y)≠a_(#g,p,z) is satisfied for y, z=1, 2, . . . , rp, ^(∀)(y, z), wherein y≠z. It is further assumed that each of r₁, r₂, . . . , r_(n−2), r_(n−1) is three or greater. Here, considering in a similar manner to Math. 30, Math. 34 and Math. 47, assuming a sub-matrix (vector) corresponding to Math. 223 to be H_(g), the g-th sub-matrix can be represented as shown in Math. 224.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 224} \right\rbrack & \; \\ {H_{g} = \left\{ {H_{g}^{\prime},\underset{\underset{n}{}}{11\mspace{14mu} \ldots \mspace{14mu} 1}} \right\}} & \left( {{Math}.\mspace{14mu} 224} \right) \end{matrix}$

In Math. 224, n continuous is correspond to terms of D⁰X₁(D)=X₁(D), D⁰X₂(D)=X₂(D), . . . , D⁰X_(n−1)(D)=X_(n−1)(D), D⁰P(D)=P(D) in each expression of Math. 223. Here, parity check matrix H can be represented as shown in FIG. 115. As shown in FIG. 115, a configuration is employed in which a sub-matrix is shifted n columns to the right between the i-th row and the (i+1)th row in parity check matrix H (see FIG. 115). Also, the data in information X₁, X₂, . . . , X_(n−1) and parity P at the time k are assumed to be X_(1,k), X_(2,k), . . . , X_(n−1,k), P_(k), respectively. Here, when transmission vector u is assumed to be u=(X_(1,0), X_(2,0), . . . , X_(n−1,0), P₀, X_(1,1), X_(2,1), . . . , X_(n−1,1), P₁, . . . , X_(1,k), X_(2,k), . . . , X_(n−1,k), P_(k), . . . )^(T), Hu=0 holds true (note that the zero in Hu=0 means that all elements are vectors of zero).

Non-Patent Literature 12 describes a parity check matrix when performing tail-biting. The parity check matrix is represented as shown in Math. 135. In Math. 135, H is a parity check matrix, and H^(T) is a syndrome former. Also, H^(T) _(i)(t) (i=0, 1, . . . , M_(s)) is a sub-matrix of c×(c−b), and M_(s) is a memory size.

According to Math. 115 and Math. 135, to achieve higher error-correction capability in LDPC-CC having a time-varying period of q and a coding rate of (n−1)/n based on a parity check polynomial, the following condition is important in a parity check matrix H that is required to perform decoding.

<Condition #18-1>

-   -   The number of rows in a parity check matrix is a multiple of q.     -   Thus the number of columns in a parity check matrix is a         multiple of n×q. In this condition, (for example) a         log-likelihood ratio that is necessary for decoding is a         log-likelihood ratio in bits for a multiple of n×q.

However, the parity check polynomial that satisfies zero of LDPC-CC having a time-varying period of q and a coding rate of (n−1)/n and requires Condition #18-1 is not limited to Math. 223, but may be a periodic time-varying LDPC-CC of period q based on Math. 221.

The periodic time-varying LDPC-CC of period q is a type of feedforward convolutional code. Thus, as the encoding method when tail-biting is performed, an encoding method disclosed in Non-Patent Literature 10 or 11 can be applied. The procedure is as shown below.

<Procedure 18-1>

For example, in a periodic time-varying LDPC-CC of period q defined by Math. 223, P(D) is represented as shown in the following.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 225} \right\rbrack} & \; \\ {{P(D)} = {{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \cdots + D^{{a\# g},1,r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \cdots + D^{{a\# g},2,r_{2}} + 1} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + \cdots + D^{{a\# g},{n - 1},r_{n - 1}} + 1} \right){X_{n - 1}(D)}}}} & \left( {{Math}.\mspace{14mu} 225} \right) \end{matrix}$

Also, Math. 225 is represented as shown in the following.

[Math.  226] $\begin{matrix} {{P\lbrack i\rbrack} = {{X_{1}\lbrack i\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# g},1,1}} \right\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# g},1,2}} \right\rbrack} \oplus \cdots \oplus {X_{1}\left\lbrack {i - a_{{\# g},1,r_{1}}} \right\rbrack} \oplus {X_{2}\lbrack i\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,1}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,2}} \right\rbrack} \oplus \cdots \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,r_{2}}} \right\rbrack} \oplus \cdots \oplus {X_{n - 1}\lbrack i\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},1}} \right\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},2}} \right\rbrack} \oplus \cdots \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},r_{n - 1}}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 226} \right) \end{matrix}$

In the above expression, ⊕ denotes exclusive OR.

When the above tail-biting is performed, the coding rate of the periodic time-varying LDPC-CC of feedforward period q based on a parity check polynomial is (n−1)/n. Thus, assuming that the number of pieces of information X₁ in one block is M bits, the number of pieces of information X₂ is M bits, . . . , the number of pieces of information X_(n−1) is M bits, the parity bits in one block of the periodic time-varying LDPC-CC of feedforward period q based on a parity check polynomial are M bits when the tail-biting is performed. Accordingly, the codeword u_(j) of the j-th block is represented as u_(j)=(X_(j,1,0), X_(j,2,0), . . . , X_(j,n−1,0), P_(j,0), X_(j,1,1), X_(j,2,1), . . . , X_(j,n−1,1), P_(j,1), . . . , X_(j,1,i), X_(j,2,i), . . . , X_(j,n−1,i), P_(j,i), . . . , X_(j,1,M−2), X_(j,2,M−2), . . . , X_(j,n−1,M−2), P_(j,M−2), X_(j,1,M−1), X_(j,2,M−1), . . . , X_(j,n−1,M−1), P_(j,M−1)). Note that in the above description, it is assumed that i=0, 1, 2, . . . , M−2, M−1), and X_(j,k,i) represents information X_(k) (k=1, 2, . . . , n−2, n−1) at the time i of the j-th block, and P_(j,i) represents a parity P for the periodic time-varying LDPC-CC of feedforward period q based on a parity check polynomial when tail-biting at the time i of the j-th block is performed.

Accordingly, when i%q=k at the time i of the j-th block (% indicates modulo operation), the parity at the time i of the j-th block can be obtained by using Math. 225 and Math. 226 assuming g=k. Thus, when i%q=k, the parity P_(j,i) at the time i of the j-th block is obtained by using the following expression.

[Math.  227] $\begin{matrix} {{P\lbrack i\rbrack} = {{X_{1}\lbrack i\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# k},1,1}} \right\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# k},1,2}} \right\rbrack} \oplus \cdots \oplus {X_{1}\left\lbrack {i - a_{{\# k},1,r_{1}}} \right\rbrack} \oplus {X_{2}\lbrack i\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# k},2,1}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# k},2,2}} \right\rbrack} \oplus \cdots \oplus {X_{2}\left\lbrack {i - a_{{\# k},2,r_{2}}} \right\rbrack} \oplus \cdots \oplus {X_{n - 1}\lbrack i\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# k},{n - 1},1}} \right\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# k},{n - 1},2}} \right\rbrack} \oplus \cdots \oplus {X_{n - 1}\left\lbrack {i - a_{{\# k},{n - 1},r_{n - 1}}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 227} \right) \end{matrix}$

In the above expression, ⊕ denotes exclusive OR.

Thus, when i%q=k, the parity P_(j,i) at the time i of the j-th block is represented as follows.

[Math.  228] $\begin{matrix} {P_{j,i} = {X_{j,1,i} \oplus X_{j,1,{Z\; 1},1} \oplus X_{j,1,{Z\; 1},2} \oplus \cdots \oplus X_{j,1,{Z\; 1},_{r_{1}}} \oplus X_{j,2,i} \oplus X_{j,2,{Z\; 2},1} \oplus X_{j,2,{Z\; 2},2} \oplus \cdots \oplus X_{j,2,{Z\; 2_{r_{2}}}} \oplus \cdots \oplus X_{j,{n - 1},i} \oplus X_{j,{n - 1},{{Zn} - 1},1} \oplus X_{j,{n - 1},{{Zn} - 1},2} \oplus \cdots \oplus X_{j,{n - 1},{{Zn} - 1},_{r_{n - 1}}}}} & \left( {{Math}.\mspace{14mu} 228} \right) \end{matrix}$

Note that it is assumed as follows.

$\begin{matrix} \left\lbrack {{{Math}.\mspace{14mu} 229}\text{-}1} \right\rbrack & \; \\ {Z_{1,1} = {i -_{a_{{\# k},1,1}}}} & \left( {{{Math}.\mspace{14mu} 229}\text{-}1\text{-}1} \right) \\ {Z_{1,2} = {i -_{a_{{\# k},1,2}}\vdots}} & \left( {{{Math}.\mspace{14mu} 229}\text{-}1\text{-}2} \right) \\ {{Z_{1,s} = {i -_{a_{{\# k},1,s}}\left( {{s = 1},2,\ldots,{r_{1} - 1},r_{1}} \right)}}\vdots} & \left( {{{Math}.\mspace{14mu} 229}\text{-}1\text{-}s} \right) \\ {Z_{1,_{r_{1}}} = {i -_{a_{{\# k},1,r_{1}}}}} & \left( {{{Math}.\mspace{14mu} 229}\text{-}1\text{-}r_{1}} \right) \\ {Z_{2,1} = {i -_{a_{{\# k},2,1}}}} & \left( {{{Math}.\mspace{14mu} 229}\text{-}2\text{-}1} \right) \\ {Z_{2,2} = {i -_{a_{{\# k},2,2}}\vdots}} & \left( {{{Math}.\mspace{14mu} 229}\text{-}2\text{-}2} \right) \\ {{Z_{2,s} = {i -_{a_{{\# k},2,s}}\left( {{s = 1},2,,{r_{2} - 1},r_{2}} \right)}}\vdots} & \left( {{{Math}.\mspace{14mu} 229}\text{-}2\text{-}s} \right) \\ {Z_{2,_{r_{2}}} = {i -_{a_{{\# k},2,_{r_{2}}}}\vdots}} & \left( {{{Math}.\mspace{14mu} 229}\text{-}2\text{-}r_{2}} \right) \\ {Z_{u,1} = {i -_{a_{{\# k},u,1}}}} & \left( {{{Math}.\mspace{14mu} 229}\text{-}u\text{-}1} \right) \\ {Z_{u,2} = {i -_{a_{{\# k},u,2}}\vdots}} & \left( {{{Math}.\mspace{14mu} 229}\text{-}u\text{-}2} \right) \\ {{Z_{u,s} = {i -_{a_{{\# k},u,s}}\left( {{s = 1},2,,{r_{u} - 1},r_{u}} \right)}}\vdots} & \left( {{{Math}.\mspace{14mu} 229}\text{-}u\text{-}s} \right) \end{matrix}$ [Math. 229-2]

Z _(u,ru) =i−a _(#k,u,ru)  (Math. 229-u-r_(u))

In the above expression, u=1, 2, . . . , n−2, n−1 (u is an integer equal to or greater than 1 and equal to or smaller than n−1.

$\begin{matrix} \begin{matrix} \vdots \\ {Z_{{n - 1},1} = {i - a_{{\# k},{n - 1},1}}} \end{matrix} & \left( {{{Math}.\mspace{14mu} 229} - \left( {n - 1} \right) - 1} \right) \\ \begin{matrix} {Z_{{n - 1},2} = {i - a_{{\# k},{n - 1},2}}} \\ \vdots \end{matrix} & \left( {{{Math}.\mspace{14mu} 229} - \left( {n - 1} \right) - 2} \right) \\ {{Z_{{n - 1},s} = {i - {a_{{\# k},{n - 1},s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{n - 1} - 1},r_{n - 1}} \right)}}}\vdots} & \left( {{{Math}.\mspace{14mu} 229} - \left( {n - 1} \right) - s} \right) \\ {Z_{{n - 1},r_{n - 1}} = {i - a_{{\# k},{n - 1},r_{n - 1}}}} & \left( {{{Math}.\mspace{14mu} 229} - \left( {n - 1} \right) - r_{n - 1}} \right) \end{matrix}$

However, since tail-biting is performed, the parity P_(j,i) at the time i of the j-th block can be obtained from groups of mathematical expressions in Math. 227, Math. 228 and Math. 230.

$\begin{matrix} {\left\lbrack {{{Math}.\mspace{14mu} 230}\text{-}1} \right\rbrack {{{When}\mspace{14mu} Z_{1,1}} \geq {0\text{:}}}} & \; \\ {Z_{1,1} = {{i -_{a_{{\# k},1,1}}{{When}\mspace{14mu} Z_{1,1}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}1\text{-}1\text{-}1} \right) \\ {{Z_{1,1} = {i -_{a_{{\# k},1,1}}{+ M}}}{{{When}\mspace{14mu} Z_{1,2}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}1\text{-}1\text{-}2} \right) \\ {Z_{1,2} = {{i -_{a_{{\# k},1,2}}{{When}\mspace{14mu} Z_{1,1}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}1\text{-}2\text{-}1} \right) \\ {{Z_{1,2} = {i -_{a_{{\# k},1,2}}{+ M}}}\vdots {{{When}\mspace{14mu} Z_{1,2}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}1\text{-}2\text{-}2} \right) \\ {{Z_{1,s} = {i -_{a_{{\# k},1,s}}\mspace{14mu} \left( {{s = 1},2,\ldots,{r_{1} - 1},r_{1}} \right)}}{{{When}\mspace{14mu} Z_{1,1}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}1\text{-}s\text{-}1} \right) \\ {Z_{1,s} = {i -_{a_{{\# k},1,s}}{{+ M}\mspace{14mu} \left( {{s = 1},2,,{r_{1} - 1},r_{1}} \right)}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}1\text{-}s\text{-}2} \right) \end{matrix}$

$\begin{matrix} \left\lbrack {{{Math}.\mspace{14mu} 230} - 2} \right\rbrack & \; \\ {{{{{When}\mspace{14mu} Z_{1,{r\; 1}}} \geq 0}:Z_{1,r_{1}}} = {i - a_{{\# k},1,_{r_{1}}}}} & \left( {{{Math}.\mspace{14mu} 230} - 1 - r_{1} - 1} \right) \\ {{{{{When}\mspace{14mu} Z_{1,{r\; 1}}} < 0}:Z_{1,r_{1}}} = {i - a_{{\# k},1,r_{1}} + M}} & \left( {{{Math}.\mspace{14mu} 230} - 1 - r_{1} - 2} \right) \\ {{{{{When}\mspace{14mu} Z_{2,1}} \geq 0}:Z_{2,1}} = {i - a_{{\# k},2,1}}} & \left( {{{Math}.\mspace{14mu} 230} - 2 - 1 - 1} \right) \\ {{{{{When}\mspace{14mu} Z_{2,1}} <}:Z_{2,1}} = {i - a_{{\# k},2,1} + M}} & \left( {{{Math}.\mspace{14mu} 230} - 2 - 1 - 2} \right) \\ {{{{{When}\mspace{14mu} Z_{2,2}} \geq 0}:Z_{2,2}} = {i - a_{{\# k},2,2}}} & \left( {{{Math}.\mspace{14mu} 230} - 2 - 2 - 1} \right) \\ {{{{{{When}\mspace{14mu} Z_{2,2}} < 0}:Z_{2,2}} = {i - a_{{\# k},2,2} + M}}\vdots} & \left( {{{Math}.\mspace{14mu} 230} - 2 - 2 - 2} \right) \\ {{{{{When}\mspace{14mu} Z_{2,s}} \geq 0}:Z_{2,s}} = {i - {a_{\#,2,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}} & \left( {{{Math}.\mspace{14mu} 230} - 2 - s - 1} \right) \\ {{{{{{When}\mspace{14mu} Z_{2,s}} < 0}:Z_{2,s}} = {i - a_{{\# k},2,s} + {M\left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}}\vdots} & \left( {{{Math}.\mspace{14mu} 230} - 2 - s - 2} \right) \\ {{{{{When}\mspace{14mu} Z_{2,{r\; 2}}} \geq 0}:Z_{2,r_{2}}} = {i - a_{{\# k},2,r_{2}}}} & \left( {{{Math}.\mspace{14mu} 230} - 2 - r_{2} - 1} \right) \\ {{{{{{When}\mspace{14mu} Z_{2,{r\; 2}}} < 0}:Z_{2,r_{2}}} = {i - a_{{\# k},2,r_{2}} + M}}\vdots} & \left( {{{Math}.\mspace{14mu} 230} - 2 - r_{2} - 2} \right) \end{matrix}$

$\begin{matrix} {\left\lbrack {{{Math}.\mspace{14mu} 230}\text{-}3} \right\rbrack {{{When}\mspace{14mu} Z_{u,1}} \geq {0\text{:}}}} & \; \\ {Z_{u,1} = {{i -_{a_{{\# k},u,1}}{{When}\mspace{14mu} Z_{u,1}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}u\text{-}1\text{-}1} \right) \\ {{Z_{u,1} = {i -_{a_{{\# k},u,1}}{+ M}}}{{{When}\mspace{14mu} Z_{u,2}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}u\text{-}1\text{-}2} \right) \\ {Z_{u,2} = {{i -_{a_{{\# k},u,2}}{{When}\mspace{14mu} Z_{u,2}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}u\text{-}2\text{-}1} \right) \\ {{Z_{u,2} = {i -_{a_{{\# k},u,2}}{+ M}}}\vdots {{{When}\mspace{14mu} Z_{u,s}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}u\text{-}2\text{-}2} \right) \\ {{Z_{u,s} = {i -_{a_{{\# k},u,s}}\mspace{14mu} \left( {{s = 1},2,\ldots,{r_{u} - 1},r_{u}} \right)}}{{{When}\mspace{14mu} Z_{u,s}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}u\text{-}s\text{-}1} \right) \\ {{Z_{u,s} = {i -_{a_{{\# k},u,s}}{{+ M}\mspace{14mu} \left( {{s = 1},2,\ldots,{r_{u} - 1},r_{u}} \right)}}}\vdots {{{When}\mspace{14mu} Z_{u,{ru}}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}u\text{-}s\text{-}2} \right) \\ {Z_{u,{ru}} = {{i -_{a_{{\# k},u,{ru}}}{{When}\mspace{14mu} Z_{u,{ru}}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}u\text{-}r_{u}\text{-}1} \right) \\ {{Z_{u,{ru}} = {i -_{a_{{\# k},u,{ru}}}{+ M}}}{{{In}\mspace{14mu} {the}\mspace{14mu} {above}\mspace{14mu} {expression}},{u = 1},2,\ldots,{n - 2},{n - {1\mspace{14mu} {\left( {{u\mspace{14mu} {is}\mspace{14mu} {an}\mspace{14mu} {integer}\mspace{14mu} {equal}\mspace{14mu} {to}\mspace{14mu} {or}\mspace{14mu} {greater}\mspace{14mu} {than}\mspace{14mu} 1\mspace{14mu} {and}\mspace{14mu} {equal}\mspace{14mu} {to}\mspace{14mu} {or}\mspace{14mu} {smaller}\mspace{14mu} {than}\mspace{14mu} n} - 1} \right).\vdots}}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}u\text{-}r_{u}\text{-}2} \right) \end{matrix}$

$\begin{matrix} {\left\lbrack {{{Math}.\mspace{14mu} 230}\text{-}4} \right\rbrack {{{When}\mspace{14mu} Z_{{n - 1},1}} \geq {0\text{:}}}} & \; \\ {Z_{{n - 1},1} = {{i -_{a_{{\# k},{n - 1},1}}{{When}\mspace{14mu} Z_{{n - 1},1}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}\left( {n - 1} \right)\text{-}1\text{-}1} \right) \\ {{Z_{{n - 1},1} = {i -_{a_{{\# k},{n - 1},1}}{+ M}}}{{{When}\mspace{14mu} Z_{{n - 1},2}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}\left( {n - 1} \right)\text{-}1\text{-}2} \right) \\ {Z_{{n - 1},2} = {{i -_{a_{{\# k},{n - 1},2}}{{When}\mspace{14mu} Z_{{n - 1},2}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}\left( {n - 1} \right)\text{-}2\text{-}1} \right) \\ {{Z_{{n - 1},2} = {i -_{a_{{\# k},{n - 1},2}}{+ M}}}\vdots {{{When}\mspace{14mu} Z_{{n - 1},s}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}\left( {n - 1} \right)\text{-}2\text{-}2} \right) \\ {{Z_{{n - 1},s} = {i -_{a_{{\# k},{n - 1},s}}\mspace{14mu} \left( {{s = 1},2,\ldots,{r_{n - 1} - 1},r_{n - 1}} \right)}}{{{When}\mspace{14mu} Z_{{n - 1},s}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}\left( {n - 1} \right)\text{-}s\text{-}1} \right) \\ {{Z_{{n - 1},s} = {i -_{a_{{\# k},{n - 1},s}}{{+ M}\mspace{14mu} \left( {{s = 1},2,\ldots,{r_{n - 1} - 1},r_{n - 1}} \right)}}}\vdots {{{When}\mspace{14mu} Z_{{n - 1},{{rn} - 1}}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}\left( {n - 1} \right)\text{-}s\text{-}2} \right) \\ {Z_{{n - 1},_{r_{n - 1}}} = {{i -_{a_{{\# k},{n - 1},_{r_{n - 1}}}}{{When}\mspace{14mu} Z_{{n - 1},{{rn} - 1}}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}\left( {n - 1} \right)\text{-}r_{n - 1}\text{-}1} \right) \\ {Z_{{n - 1},_{r_{n - 1}}} = {i -_{a_{{\# k},{n - 1},_{r_{n - 1}}}}{+ M}}} & \left( {{{Math}.\mspace{14mu} 230}\text{-}\left( {n - 1} \right)\text{-}r_{n - 1}\text{-}2} \right) \end{matrix}$

<Procedure 18-1′>

A periodic time-varying LDPC-CC of period q by Math. 221 that is different from the periodic time-varying LDPC-CC of period q defined by Math. 223 is considered. In this consideration, tail-biting is explained with regard to Math. 221 as well. P(D) is represented as shown in the following.

[Math.  231] $\begin{matrix} {{P(D)} = {{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \cdots + D^{{a\# g},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \cdots + D^{{a\# g},2,_{r_{2}}}} \right){X_{2}(D)}} + \cdots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + \cdots + D^{{a\# g},{n - 1},_{r_{n - 1}}}} \right){X_{n - 1}(D)}}}} & \left( {{Math}.\mspace{14mu} 231} \right) \end{matrix}$

Also, Math. 231 is represented as shown in the following.

[Math.  232] $\begin{matrix} {{P\lbrack i\rbrack} = {{X_{1}\left\lbrack {i - a_{{\# g},1,1}} \right\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# g},1,2}} \right\rbrack} \oplus \cdots \oplus {X_{1}\left\lbrack {i - a_{{\# g},1,r_{1}}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,1}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,2}} \right\rbrack} \oplus \cdots \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,r_{2}}} \right\rbrack} \oplus \cdots \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},1}} \right\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},2}} \right\rbrack} \oplus \cdots \oplus {X_{n - 1}\left\lbrack {i - a_{{\# g},{n - 1},r_{n - 1}}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 232} \right) \end{matrix}$

In the above expression, ⊕ denotes exclusive OR.

When the tail-biting is performed, the coding rate of the periodic time-varying LDPC-CC of feedforward period q based on a parity check polynomial is (n−1)/n. Thus, assuming that the number of pieces of information X₁ in one block is M bits, the number of pieces of information X₂ is M bits, . . . , the number of pieces of information X_(n−1) is M bits, the parity bits in one block of the periodic time-varying LDPC-CC of feedforward period q based on a parity check polynomial are M bits when the tail-biting is performed. Accordingly, the codeword u_(j) of the j-th block is represented as u_(j)=(X_(j,1,0), X_(j,2,0), . . . X_(j,n−1,0), P_(j,0), X_(j,1,1), X_(j,2,1), . . . , X_(j,n−1,1), P_(j,1), . . . , X_(j,1,i), X_(j,2,i), . . . , X_(j,n−1,i), P_(j,i), . . . , X_(j,1,M−2), X_(j,2,M−2), . . . , X_(j,n−1,M−2), P_(j,M−2), X_(j,1,M−1), X_(j,2,M−1), . . . , X_(j,n−1,M−1), P_(j,M−1)). Note that in the above description, it is assumed that i=0, 1, 2, . . . , M−2, M−1), and X_(j,k,i) represents information X_(k) (k=1, 2, . . . , n−2, n−1) at the time i of the j-th block, and P_(j,i) represents a parity P for the periodic time-varying LDPC-CC of feedforward period q based on a parity check polynomial when tail-biting at the time i of the j-th block is performed.

Accordingly, when i%q=k at the time i of the j-th block (% indicates modulo operation), the parity at the time i of the j-th block can be obtained by using Math. 231 and Math. 232 assuming g=k. Thus, when i%q=k, the parity P_(j,i) at the time i of the j-th block is obtained by using the following expression.

[Math.  233] $\begin{matrix} {{P\lbrack i\rbrack} = {{X_{1}\left\lbrack {i - a_{{\# k},1,1}} \right\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# k},1,2}} \right\rbrack} \oplus \cdots \oplus {X_{1}\left\lbrack {i - a_{{\# k},1,r_{1}}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# k},2,1}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# k},2,2}} \right\rbrack} \oplus \cdots \oplus {X_{2}\left\lbrack {i - a_{{\# k},2,r_{2}}} \right\rbrack} \oplus \cdots \oplus {X_{n - 1}\left\lbrack {i - a_{{\# k},{n - 1},1}} \right\rbrack} \oplus {X_{n - 1}\left\lbrack {i - a_{{\# k},{n - 1},2}} \right\rbrack} \oplus \cdots \oplus {X_{n - 1}\left\lbrack {i - a_{{\# k},{n - 1},r_{n - 1}}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 233} \right) \end{matrix}$

In the above expression, (denotes exclusive OR.

Thus, when i%q=k, the parity P_(j,i) at the time i of the j-th block is represented as follows.

[Math.  234] $\begin{matrix} {P_{j,i} = {X_{j,1,{Z\; 1},1} \oplus X_{j,1,{Z\; 1},2} \oplus \cdots \oplus X_{j,1,{Z\; 1},_{r_{1}}} \oplus X_{j,2,{Z\; 2},1} \oplus X_{j,2,{Z\; 2},2} \oplus \cdots \oplus X_{j,2,{Z\; 2_{r_{2}}}} \oplus \cdots \oplus X_{j,{n - 1},{{Zn} - 1},1} \oplus X_{j,{n - 1},{{Zn} - 1},2} \oplus \cdots \oplus X_{j,{n - 1},{{Zn} - 1},_{r_{n - 1}}}}} & \left( {{Math}.\mspace{14mu} 234} \right) \end{matrix}$

Note that it is assumed as follows.

$\begin{matrix} \left\lbrack {{{Math}.\mspace{14mu} 235} - 1} \right\rbrack & \; \\ {Z_{1,1} = {i - a_{{\# k},1,1}}} & \left( {{{Math}.\mspace{14mu} 235} - 1 - 1} \right) \\ {{Z_{1,2} = {i - a_{{\# k},1,2}}}\vdots} & \left( {{{Math}.\mspace{14mu} 235} - 1 - 2} \right) \\ {{Z_{1,s} = {i - {a_{{\# k},1,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}}\vdots} & \left( {{{Math}.\mspace{14mu} 235} - 1 - s} \right) \\ {Z_{1,r_{1}} = {i - a_{{\# k},1,r_{1}}}} & \left( {{{Math}.\mspace{14mu} 235} - 1 - r_{1}} \right) \\ {Z_{2,1} = {i - a_{{\# k},2,1}}} & \left( {{{Math}.\mspace{14mu} 235} - 2 - 1} \right) \\ {{Z_{2,2} = {i - a_{{\# k},2,2}}}\vdots} & \left( {{{Math}.\mspace{14mu} 235} - 2 - 2} \right) \\ {{Z_{2,s} = {i - {a_{{\# k},2,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}}\vdots} & \left( {{{Math}.\mspace{14mu} 235} - 2 - s} \right) \\ {{Z_{2,r_{2}} = {i - a_{{\# k},2,r_{2}}}}\vdots} & \left( {{{Math}.\mspace{14mu} 235} - 2 - r_{2}} \right) \\ {Z_{u\;,1} = {i - a_{{\# k},u,1}}} & \left( {{{Math}.\mspace{14mu} 235} - u - 1} \right) \\ {{z_{u,2} = {i - a_{{\# k},u,2}}}\vdots} & \left( {{{Math}.\mspace{14mu} 235} - u - 2} \right) \\ {{Z_{u,s} = {i - {a_{{\# k},u,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{u} - 1},r_{u}} \right)}}}\vdots} & \left( {{{Math}.\mspace{14mu} 235} - u - s} \right) \\ {Z_{u,{ru}} = {i - a_{{\# k},u,{ru}}}} & \left( {{{Math}.\mspace{14mu} 235} - u - r_{u}} \right) \end{matrix}$

In the above expression, u=1, 2, . . . , n−2, n−1 (u is an integer equal to or greater than 1 and equal to or smaller than n−1).

[Math.  235-2] ⋮ $\begin{matrix} {Z_{{n - 1},1} = {i -_{a_{{\# k},{n - 1},1}}\ldots}} & \left( {{{Math}.\mspace{14mu} 235}\text{-}\left( {n - 1} \right)\text{-}1} \right) \\ {{Z_{{n -},2} = {i -_{a_{{\# k},{n - 1},2}}\ldots}}\vdots} & \left( {{{Math}.\mspace{14mu} 235}\text{-}\left( {n - 1} \right)\text{-}2} \right) \\ {{Z_{{n - 1},s} = {i -_{a_{{\# k},{n - 1},s}}\mspace{14mu} \left( {{s = 1},2,,{r_{n - 1} - 1},r_{n - 1}} \right)}}\vdots} & \left( {{{Math}.\mspace{14mu} 235}\text{-}\left( {n - 1} \right)\text{-}s} \right) \\ {Z_{{n -},_{r_{n - 1}}} = {i -_{a_{{\# k},{n - 1},_{r_{n - 1}}}}\ldots}} & \left( {{{Math}.\mspace{14mu} 235}\text{-}\left( {n - 1} \right)\text{-}r_{n - 1}} \right) \end{matrix}$

However, since tail-biting is performed, the parity P_(j,i) at the time i of the j-th block can be obtained from groups of mathematical expressions in Math. 233, Math. 234 and Math. 236.

$\begin{matrix} \left\lbrack {{{Math}.\mspace{14mu} 236} - 1} \right\rbrack & \; \\ {{{{{When}\mspace{14mu} Z_{1,1}} \geq 0}:Z_{1,1}} = {i - {a_{{\# k},1,1}\mspace{14mu} \ldots}}} & \left( {{{Math}.\mspace{14mu} 236} - 1 - 1 - 1} \right) \\ {{{{{When}\mspace{14mu} Z_{1,1}} < 0}:Z_{1,1}} = {a_{{\# k},1,1} + {M\mspace{14mu} \ldots}}} & \left( {{{Math}.\mspace{14mu} 236} - 1 - 1 - 2} \right) \\ {{{{{When}\mspace{14mu} Z_{1,2}} \geq 0}:Z_{1,2}} = {i - {a_{{\# k},1,2}\mspace{14mu} \ldots}}} & \left( {{{Math}.\mspace{14mu} 236} - 1 - 2 - 1} \right) \\ {{{{{{When}\mspace{14mu} Z_{1,2}} < 0}:Z_{1,2}} = {i - a_{{\# k},1,2} + {M\mspace{14mu} \ldots}}}\vdots} & \left( {{{Math}.\mspace{14mu} 236} - 1 - 2 - 2} \right) \\ {{{{{When}\mspace{14mu} Z_{1,s}} \geq 0}:Z_{1,s}} = {i - {a_{{\# k},1,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}} & \left( {{{Math}.\mspace{14mu} 236} - 1 - s - 1} \right) \\ {{{{{{When}\mspace{14mu} Z_{1,s}} < 0}:Z_{1,s}} = {i - a_{{\# k},1,s} + {M\left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}}\vdots} & \left( {{{Math}.\mspace{14mu} 236} - 1 - s - 2} \right) \end{matrix}$

$\begin{matrix} {\left\lbrack {{{Math}.\mspace{14mu} 236}\text{-}2} \right\rbrack {{{When}\mspace{14mu} Z_{1,{r\; 1}}} \geq {0\text{:}}}} & \; \\ {Z_{1,_{r_{1}}} = {{i -_{a_{{\# k},1,_{r_{1}}}}{{When}\mspace{14mu} Z_{1,{r\; 1}}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}1\text{-}r_{1}\text{-}1} \right) \\ {{Z_{1,_{r_{1}}} = {i -_{a_{{\# k},1,_{r_{1}}}}{+ M}}}{{{When}\mspace{14mu} Z_{2,1}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}1\text{-}r_{1}\text{-}2} \right) \\ {Z_{2,1} = {{i -_{a_{{\# k},2,1}}{{When}\mspace{14mu} Z_{2,1}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}2\text{-}1\text{-}1} \right) \\ {{Z_{2,1} = {i -_{a_{{\# k},2,1}}{+ M}}}{{{When}\mspace{14mu} Z_{2,2}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}2\text{-}1\text{-}2} \right) \\ {Z_{2,2} = {{i -_{a_{{\# k},2,2}}{{When}\mspace{14mu} Z_{2,2}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}2\text{-}2\text{-}1} \right) \\ {Z_{2,2} = {{i -_{a_{{\# k},2,2}}{{When}\mspace{14mu} Z_{2,2}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}2\text{-}2\text{-}2} \right) \\ {{Z_{2,s} = {i -_{a_{{\# k},2,s}}\mspace{14mu} \left( {{s = 1},2,\ldots,{r_{2} - 1},r_{2}} \right)}}{{{When}\mspace{14mu} Z_{2,s}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}2\text{-}s\text{-}1} \right) \\ {{Z_{2,s} = {i -_{a_{{\# k},2,s}}{{+ M}\mspace{14mu} \left( {{s = 1},2,\ldots,{r_{2} - 1},r_{2}} \right)}}}\vdots {{{When}\mspace{14mu} Z_{2,{r\; 2}}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}2\text{-}s\text{-}2} \right) \\ {Z_{2,_{r_{2}}} = {{i -_{a_{{\# k},2,_{r_{2}}}}{{When}\mspace{14mu} Z_{2,{r\; 2}}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}2\text{-}r_{1}\text{-}1} \right) \\ {{Z_{2,_{r_{2}}} = {i -_{a_{{\# k},2,_{r_{2}}}}{+ M}}}\vdots} & \left( {{{Math}.\mspace{14mu} 236}\text{-}2\text{-}r_{2}\text{-}2} \right) \end{matrix}$

$\begin{matrix} {\left\lbrack {{{Math}.\mspace{14mu} 236}\text{-}3} \right\rbrack {{{When}\mspace{14mu} Z_{u,1}} \geq {0\text{:}}}} & \; \\ {Z_{u,1} = {{i -_{a_{{\# k},u,1}}{{When}\mspace{14mu} Z_{u,1}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}u\text{-}1\text{-}1} \right) \\ {{Z_{u,1} = {i -_{a_{{\# k},u,1}}{+ M}}}{{{When}\mspace{14mu} Z_{u,2}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}u\text{-}1\text{-}2} \right) \\ {Z_{u,2} = {{i -_{a_{{\# k},u,2}}{{When}\mspace{14mu} Z_{u,2}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}u\text{-}2\text{-}1} \right) \\ {{Z_{u,2} = {i -_{a_{{\# k},u,2}}{+ M}}}\vdots {{{When}\mspace{14mu} Z_{u,s}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}u\text{-}2\text{-}2} \right) \\ {{Z_{u,s} = {i -_{a_{{\# k},u,s}}\mspace{14mu} \left( {{s = 1},2,\ldots,{r_{u} - 1},r_{u}} \right)}}{{{When}\mspace{14mu} Z_{u,s}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}u\text{-}s\text{-}1} \right) \\ {{Z_{u,s} = {i -_{a_{{\# k},u,s}}{{+ M}\mspace{14mu} \left( {{s = 1},2,\ldots,{r_{u} - 1},r_{u}} \right)}}}\vdots {{{When}\mspace{14mu} Z_{u,{ru}}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}u\text{-}s\text{-}2} \right) \\ {Z_{u,{ru}} = {{i -_{a_{{\# k},u,{ru}}}{{When}\mspace{14mu} Z_{u,{ru}}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}u\text{-}r_{u}\text{-}1} \right) \\ {{Z_{u,{ru}} = {i -_{a_{{\# k},u,{ru}}}{+ M}}}{{{In}\mspace{14mu} {the}\mspace{14mu} {above}\mspace{14mu} {expression}},{u = 1},2,\ldots,{n - 2},{n - {1\mspace{14mu} {\left( {{u\mspace{14mu} {is}\mspace{14mu} {an}\mspace{14mu} {integer}\mspace{14mu} {equal}\mspace{14mu} {to}\mspace{14mu} {or}\mspace{14mu} {greater}\mspace{14mu} {than}\mspace{14mu} 1\mspace{14mu} {and}\mspace{14mu} {equal}\mspace{14mu} {to}\mspace{14mu} {or}\mspace{14mu} {smaller}\mspace{14mu} {than}\mspace{14mu} n} - 1} \right).\vdots}}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}u\text{-}r_{u}\text{-}2} \right) \end{matrix}$

$\begin{matrix} {\left\lbrack {{{Math}.\mspace{14mu} 236}\text{-}4} \right\rbrack {{{When}\mspace{14mu} Z_{{n - 1},1}} \geq {0\text{:}}}} & \; \\ {Z_{{n - 1},1} = {{i -_{a_{{\# k},{n - 1},1}}{{When}\mspace{14mu} Z_{{n - 1},1}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}\left( {n - 1} \right)\text{-}1\text{-}1} \right) \\ {{Z_{{n - 1},1} = {i -_{a_{{\# k},{n - 1},1}}{+ M}}}{{{When}\mspace{14mu} Z_{{n - 1},2}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}\left( {n - 1} \right)\text{-}1\text{-}2} \right) \\ {Z_{{n - 1},2} = {{i -_{a_{{\# k},{n - 1},2}}{{When}\mspace{14mu} Z_{{n - 1},2}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}\left( {n - 1} \right)\text{-}2\text{-}1} \right) \\ {{Z_{{n - 1},2} = {i -_{a_{{\# k},{n - 1},2}}{+ M}}}\vdots {{{When}\mspace{14mu} Z_{{n - 1},s}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}\left( {n - 1} \right)\text{-}2\text{-}2} \right) \\ {{Z_{{n - 1},s} = {i -_{a_{{\# k},{n - 1},s}}\mspace{14mu} \left( {{s = 1},2,\ldots,{r_{n - 1} - 1},r_{n - 1}} \right)}}{{{When}\mspace{14mu} Z_{{n - 1},s}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}\left( {n - 1} \right)\text{-}s\text{-}1} \right) \\ {{Z_{{n - 1},s} = {i -_{a_{{\# k},{n - 1},s}}{{+ M}\mspace{14mu} \left( {{s = 1},2,\ldots,{r_{n - 1} - 1},r_{n - 1}} \right)}}}\vdots {{{When}\mspace{14mu} Z_{{n - 1},{{rn} - 1}}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}\left( {n - 1} \right)\text{-}s\text{-}2} \right) \\ {Z_{{n - 1},_{r_{n - 1}}} = {{i -_{a_{{\# k},{n - 1},_{r_{n - 1}}}}{{When}\mspace{14mu} Z_{{n - 1},{{rn} - 1}}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}\left( {n - 1} \right)\text{-}r_{n - 1}\text{-}1} \right) \\ {Z_{{n - 1},_{r_{n - 1}}} = {i -_{a_{{\# k},{n - 1},_{r_{n - 1}}}}{+ M}}} & \left( {{{Math}.\mspace{14mu} 236}\text{-}\left( {n - 1} \right)\text{-}r_{n - 1}\text{-}2} \right) \end{matrix}$

Next, a description is given of a parity check matrix for a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of the present embodiment.

To provide the description, first a description is given of a parity check matrix for the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme.

For example, when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q, which is defined by Math. 223, information X₁ at the time i of the j-th block is represented as X_(j,1,i), information X₂ at the time i is represented as X_(j,2,i), . . . , information X_(n−1) at the time i is represented as X_(j,n−1,i), and parity P at the time i is represented as P_(j,i). To satisfy Condition #18-1 in these circumstances, the tail-biting is to be performed assuming that i=1, 2, 3, . . . , q, . . . , q×N−q+1, q×N−q+2, q×N−q+3, . . . , q×N.

In the above description, N is a natural number, the transmission sequence (codeword) u_(j) of the j-th block is represented as u_(j)=(X_(j,1,1), X_(j,2,1), . . . X_(j,n−1,1), P_(j,1), X_(j,1,2), X_(j,2,2), . . . , X_(j,n−1,2), P_(j,2), . . . , X_(j,1,k), X_(j,2,k), . . . , X_(j,n−1,k), P_(j,k), . . . , X_(j,1,q×N−1), X_(j,2,q×N−1), . . . , X_(j,n−1,q×N−1), P_(j,q×N−1), X_(j,1,q×N), X_(j,2,q×N), . . . , X_(j,n−1,q×N), P_(j,q×N))^(T), and Hu_(j)=0 holds true (Note that the zero in Hu_(j)=0 means that all elements are vectors of zero. That is to say, with regard to each k (k is an integer equal to or greater than 1 and equal to or smaller than N), the value of the k-th row is zero). Note that H represents a parity check matrix of LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q when the tail-biting is performed.

A description is given of the structure of the parity check matrix of LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q when the tail-biting is performed, with reference to FIGS. 116 and 117.

Assuming a sub-matrix (vector) corresponding to Math. 223 to be H_(g), the g-th sub-matrix can be represented as shown in Math. 224. as described above.

FIG. 116 shows a parity check matrix in the vicinity of a time q×N, among parity check matrixes of LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q when the tail-biting is performed which corresponds to the above-defined transmission sequence u_(j). As shown in FIG. 116, a configuration is employed in which a sub-matrix is shifted n columns to the right between the i-th row and the (i+1)th row in parity check matrix H (see FIG. 116).

Also, in FIG. 116, 11601 indicates the q×N row (last row) of the parity check matrix, and since it satisfies Condition #18-1, it corresponds to a parity check polynomial satisfying the (q−1)th zero. The 11602 indicates the q×N−1 row of the parity check matrix, and since it satisfies Condition #18-1, it corresponds to a parity check polynomial satisfying the (q−2)th zero. The 11603 indicates a column group corresponding to the time q×N, and the columns in the group of 11603 are arranged in the order of X_(j,1,q×N), X_(j,2,q×N), . . . , X_(j,n−2,q×N), X_(j,n−1,q×N), P_(j,q×N). The 11604 indicates a column group corresponding to the time q×N−1, and the columns in the group of 11604 are arranged in the order of X_(j,1,q×N−1), X_(j,2,q×N−1), . . . , X_(j,n−2,q×N−1), X_(j,n−1,q×N−1), P_(j,q×N−1.)

Next, FIG. 117 shows a parity check matrix in the vicinity of times q×N−1, q×N, 1, 2, among parity check matrixes corresponding to u_(j)=( . . . , X_(j,1,q×N−1), X_(j,2,q×N−1), . . . , X_(j,n−2,q×N−1), X_(j,n−1,q×N−1), P_(j,q×N−1), X_(j,1,q×N), X_(j,2,q×N), . . . , X_(j,n−2,q×N), X_(j,n−1,q×N), P_(j,q×N), X_(j,1,1), X_(j,2,1), . . . , X_(j,n−2,1), X_(j,n−1,1), P_(j,1), X_(j,1,2), X_(j,2,2), . . . , X_(j,n−2,2), X_(j,n−1,2), P_(j,2) . . . )^(T), which is a reordered transmission sequence. Here, the parity check matrix part shown in FIG. 117 is a characteristic part when the tail-biting is performed. As shown in FIG. 117, a configuration is employed in which a sub-matrix is shifted n columns to the right between the i-th row and the (i+1)th row in parity check matrix H (see FIG. 117).

Also, in FIG. 117, 11705 indicates a column corresponding to the q×N×n column in a parity check matrix as shown in FIGS. 116, and 11706 indicates a column corresponding to the 1st column in a parity check matrix as shown in FIG. 116.

The 11707 indicates a column group corresponding to the time q×N−1, and the columns in the group of 11707 are arranged in the order of X_(j,1,q×N−1), X_(j,2,q×N−1), . . . , X_(j,n−2,q×N−1), X_(j,n−1,q×N−1), P_(j,q×N−1). The 11708 indicates a column group corresponding to the time q×N, and the columns in the group of 11708 are arranged in the order of X_(j,1,q×N), X_(j,2,q×N), . . . , X_(j,n−2,q×N), X_(j,n−1,q×N), P_(j,q×N). The 11709 indicates a column group corresponding to the time 1, and the columns in the group of 11709 are arranged in the order of X_(j,1,1), X_(j,2,1), . . . , X_(j,n−2,1), X_(j,n−1,1), P_(j,1). The 11710 indicates a column group corresponding to the time 2, and the columns in the group of 11710 are arranged in the order of X_(j,1,2), X_(j,2,2), . . . , X_(j,n−2,2), X_(j,n−1,2), P_(j,2).

The 11711 indicates a column corresponding to the q×N column in a parity check matrix as shown in FIGS. 116, and 11712 indicates a column corresponding to the 1st column in a parity check matrix as shown in FIG. 116. A characteristic part in the parity check matrix when the tail-biting is performed is a part that is on the left-hand side of 11713 and lower than 11714 in FIG. 117.

When a parity check matrix is represented as shown in FIG. 116 and Condition #18-1 is satisfied, the rows start with a row corresponding to a parity check polynomial satisfying the 0th zero, and end with a row corresponding to a parity check polynomial satisfying the (q−1)th zero. This is important in achieving higher error-correction capability. Actually, for a time-varying LDPC-CC, the signs are designed so that the number of short cycles of length in a Tanner graph becomes small. Here, as apparent when a description is made as shown in FIG. 117, for the number of short cycles of length in a Tanner graph to be small when the tail-biting is performed, it is important that the state as shown in FIG. 117 is ensured, namely, Condition #18-1 becomes an important requirement.

Note that, although the above description is based on a parity check matrix which is generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q, which is defined by Math. 223, it is also possible to generate a parity check matrix by performing the tail-biting on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q, which is defined by Math. 221.

Up to now, a description was given of a method of structuring a parity check matrix which is generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q, which is defined by Math. 223. In the following, for the description of a parity check matrix for a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of the present embodiment, a description is given of a parity check matrix that is equivalent to the above-described parity check matrix generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q.

In the above, a description was given of the structure of the parity check matrix H generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q, in which the transmission sequence u_(j) of the j-th block is represented as u_(j)=(X_(j,1,1), X_(j,2,1), . . . X_(j,n−1,1), P_(j,1), X_(j,1,2), X_(j,2,2), . . . , X_(j,n−1,2), P_(j,2), . . . , X_(j,1,k), X_(j,2,k), . . . , X_(j,n−1,k), P_(j,k), . . . , X_(j,1,q×N−1), X_(j,2,q×N−1), . . . , X_(j,n−1,q×N−1), P_(j,q×N−1), X_(j,1,q×N), X_(j,2,q×N), . . . , X_(j,n−1,q×N), P_(j,q×N))^(T), and Hu_(j)=0 holds true (Note that the zero in Hu_(j)=0 means that all elements are vectors of zero. That is to say, with regard to each k (k is an integer equal to or greater than 1 and equal to or smaller than q×N), the value of the k-th row is zero). In the following, a description is given of the structure of a parity check matrix H_(m) generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q, in which the transmission sequence s_(j) of the j-th block is represented as s_(j)=(X_(j,1,1), X_(j,1,2), . . . X_(j,1,k), . . . , X_(j,1,q×N), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,q×N), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . , X_(j,n−2,q×N), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,q×N), P_(j,1), P_(j,2), . . . , P_(j,k), . . . , P_(j,q×N))^(T), and H_(m)s_(j)=0 holds true (Note that the zero in H_(m)s_(j)=0 means that all elements are vectors of zero. That is to say, with regard to each k (k is an integer equal to or greater than 1 and equal to or smaller than q×N), the value of the k-th row is zero).

Assuming that information X₁ constituting one block when the tail-biting is performed is M bits, information X₂ is M bits, . . . , information X_(n−2) is M bits, information X_(n−1) is M bits (thus information X_(k) is M bits (k is an integer equal to or greater than 1 and equal to or smaller than n−1)), parity bit P is M bits, a parity check matrix H_(m) generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q as shown in FIG. 118 is represented as H_(m)=[H_(x,1), H_(x,2), . . . H_(x,n−2), H_(x,n−1), H_(p)]. (In this regard, as described above, it is likely to be able to achieve high error-correction capability when it is assumed that information X₁ constituting one block is M=q×N bits, information X₂ is M=q×N bits, . . . , information X_(n−2) is M=q×N bits, information X_(n−1), is M=q×N bits, parity bit is M=q×N bits. However, it is not necessarily limited to this.) Note that since the transmission sequence (codeword) s_(j) of the j-th block is represented as s_(j)=(X_(j,1,1), X_(j,1,2), . . . X_(j,1,k), . . . , X_(j,1,q×N), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,q×N), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . , X_(j,n−2,q×N), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,q×N), P_(j,1), P_(j,2), . . . , P_(j,k), . . . , P_(j,q×N)) ^(T), H_(x,1) indicates a partial matrix related to the information X₁, H_(x,2) indicates a partial matrix related to the information X₂, . . . , H_(x,n−2) indicates a partial matrix related to the information X_(n−2), H_(x,n−1) indicates a partial matrix related to the information X_(n−1) (thus H_(x,k) indicates a partial matrix related to the information X_(k) (k is equal to or greater than 1 and equal to or smaller than n−1)), H_(p) indicates a partial matrix related to the parity P, and as shown in FIG. 118, a parity check matrix H_(m) is a matrix of M rows and n×M columns, the partial matrix H_(x,1) related to the information X₁ is a matrix of M rows and M columns, the partial matrix H_(x,2) related to the information X₂ is a matrix of M rows and M columns, . . . , the partial matrix H_(x,n−2) related to the information X_(n−2) is a matrix of M rows and M columns, the partial matrix H_(x,n−1) related to the information X_(n−1) is a matrix of M rows and M columns, and the partial matrix H_(p) related to the parity P is a matrix of M rows and M columns. (In this case, H_(m)s_(j)=0 holds true (Note that the zero in H_(m)s_(j)=0 means that all elements are vectors of zero)).

FIG. 95 shows the structure of a partial matrix H_(p) related to the parity P in the parity check matrix H_(m) generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q. As shown in FIG. 95, elements of i rows and i columns in a partial matrix H, related to the parity P are 1 (i is an integer equal to or greater than 1 and equal to or smaller than M (i=1, 2, 3, . . . , M−1, M)), and the other elements are 0.

In the following, the above is described in a different manner. It is assumed that, in the partial matrix H_(p) related to the parity P in the parity check matrix H_(m) generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q, elements of i rows and j columns are represented as H_(p,comp)[i][j](i and j are integers each equal to or greater than 1 and equal to or smaller than M (i, j=1, 2, 3, . . . , M−1, M)). Then the following holds true.

[Math. 237]

H _(p,comp) [i][i]=1 for ∀i;i=1,2,3, . . . ,M−1,M  (Math. 237)

(In the above expression, i is an integer equal to or greater than 1 and equal to or smaller than M (i=1, 2, 3, . . . , M−1, M), and the above expression holds true for each value of i that satisfies this condition.)

[Math. 238]

H _(p,comp) [i][j]=1 for ∀i∀j;i≠j;i,j=1,2,3, . . . ,M−1,M  (Math. 238)

(i and j are integers each equal to or greater than 1 and equal to or smaller than M (i, j=1, 2, 3, . . . , M−1, M), i≠j, and the above expression holds true for all values of i and all values of j that satisfy these conditions.)

Note that in the partial matrix H_(p) related to the parity P of FIG. 95, the following are observed as shown in FIG. 95.

The 1st row is a vector of a part related to the parity P in the 0th (namely, g=0) parity check polynomial among parity check polynomials satisfying zero (Math. 221 or Math. 223) in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q,

The 2nd row is a vector of a part related to the parity P in the 1st (namely, g=1) parity check polynomial among parity check polynomials satisfying zero

(Math. 221 or Math. 223) in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q,

The q+1 row is a vector of a part related to the parity P in the q-th (namely, g=q) parity check polynomial among parity check polynomials satisfying zero (Math. 221 or Math. 223) in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q,

The q+2 row is a vector of a part related to the parity P in the 0th (namely, g=0) parity check polynomial among parity check polynomials satisfying zero (Math. 221 or Math. 223) in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q,

FIG. 119 shows the structure of a partial matrix H_(x,z) (z is an integer equal to or greater than 1 and equal to or smaller than n−1) related to information X_(z) in the parity check matrix H_(m) which is generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q. First, a description is given of the structure of a partial matrix H_(x,z) related to the information X_(z) in an example where a parity check polynomial satisfying zero satisfies Math. 223 in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q.

In the partial matrix H_(x,z) related to the information X_(z) shown in FIG. 119, the following are observed as shown in FIG. 119.

The 1st row is a vector of a part related to the information X_(z) in the 0th (namely, g=0) parity check polynomial among parity check polynomials satisfying zero (Math. 221 or Math. 223) in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q,

The 2nd row is a vector of a part related to the information X_(z) in the 1st (namely, g=1) parity check polynomial among parity check polynomials satisfying zero (Math. 221 or Math. 223) in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q,

The q+1 row is a vector of a part related to the information X_(z) in the q-th (namely, g=q) parity check polynomial among parity check polynomials satisfying zero (Math. 221 or Math. 223) in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q,

The q+2 row is a vector of a part related to the information X_(z) in the 0th (namely, g=0) parity check polynomial among parity check polynomials satisfying zero (Math. 221 or Math. 223) in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q,

Accordingly, when it is assumed that (s−1)%q=k (% indicates a modulo operation) holds true, the s-th row in a partial matrix H_(x,z) related to the information X_(z) shown in FIG. 119 is a vector of a part related to the information X_(z) in the k-th parity check polynomial among parity check polynomials satisfying zero (Math. 221 or Math. 223) in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q.

Next, a description is given of values of elements of the partial matrix H_(x,z) related to the information X_(z) in the parity check matrix H_(m) generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q.

It is assumed that, in the partial matrix H_(x,1) related to the information X₁ in the parity check matrix H_(m) generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q, elements of i rows and j columns are represented as H_(x,i,comp)[i][j](i and j are integers each equal to or greater than 1 and equal to or smaller than M (i, j=1, 2, 3, . . . , M−1, M)).

Assume that (s−1)%q=k holds true (% indicates a modulo operation) in the s-th row in the partial matrix H_(x,1) related to the information X₁ when a parity check polynomial satisfying zero satisfies Math. 223 in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, then a parity check polynomial corresponding to the s-th row in the partial matrix H_(x,1) related to the information X₁ is represented as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 239} \right\rbrack} & \; \\ {{{\left( {D^{{a\# k},1,1} + D^{{a\# k},1,2} + \ldots + {D^{{a\# k},1}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# k},2,1} + D^{{a\# k},2,2} + \ldots + {D^{{a\# k},2,}r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# k},{n - 1},1} + D^{{a\# k},{n - 1},2} + \ldots + {D^{{a\# k},{n - 1},}r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{11mu} 239} \right) \end{matrix}$

Accordingly, the case where elements of the s-th row in the partial matrix H_(x,1) related to the information X₁ satisfy 1 is represented as follows.

[Math. 240]

H _(x,1,comp) [s][s]=1  (Math. 240)

and

[Math. 241]

When s−a_(#k,1,y)≧1:

H _(x,1,comp) [s][s−a _(#k,1,y)]=1  (Math. 241-1)

When s-a_(#k,1,y)<1:

H _(x,1,comp) [s][s−a _(#k,1,y) +M]=1  (Math. 241-2)

(In the above expressions, y=1, 2, . . . , r₁−1, r₁.)

Also, in H_(x,1,comp)[s][j] of the s-th row in the partial matrix H_(x,1) related to the information X₁, elements other than Math. 240 and Math. 241-1, 241-2 are 0. Note that Math. 240 is an element corresponding to D⁰X₁(D)(=X₁(D)) in Math. 239 (corresponding to the diagonal element 1 in the matrix shown in FIG. 119). Also, the classification by Math. 241-1, 241-2 is provided since the partial matrix H_(x,1) related to the information X₁ has rows 1 to M and columns 1 to M.

Similarly, assume that (s−1)%q=k holds true (% indicates a modulo operation) in the s-th row in the partial matrix H_(x,2) related to the information X₂ when a parity check polynomial satisfying zero satisfies Math. 223 in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, then a parity check polynomial corresponding to the s-th row in the partial matrix H_(x,2) related to the information X₂ is represented as shown in Math. 239.

Accordingly, the case where elements of the s-th row in the partial matrix H_(x,2) related to the information X₂ satisfy 1 is represented as follows.

[Math. 242]

H _(x,2,comp) [s][s]=1  (Math. 242)

and

[Math. 243]

When s−a_(#k,2,y)≧1:

H _(x,2,comp) [s][s−a _(#k,2,y)]=1  (Math. 243-1)

When s−a_(#k,2,y)<1:

H _(x,2,comp) [s][s−a _(#k,2,y) +M]=1  (Math. 243-2)

(In the above expressions, y=1, 2, . . . , r₂−1, r₂.)

Also, in H_(x,2,comp)[s][j] of the s-th row in the partial matrix H_(x,2) related to the information X₂, elements other than Math. 242 and Math. 243-1, 243-2 are 0. Note that Math. 242 is an element corresponding to D⁰X₂(D)(=X₂(D)) in Math. 239 (corresponding to the diagonal element 1 in the matrix shown in FIG. 119). Also, the classification by Math. 243-1, 243-2 is provided since the partial matrix H_(x,2) related to the information X₂ has rows 1 to M and columns I to M.

Similarly, assume that (s−1)%q=k holds true (% indicates a modulo operation) in the s-th row in the partial matrix H_(x,n−1) related to the information X_(n−1) when a parity check polynomial satisfying zero satisfies Math. 223 in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, then a parity check polynomial corresponding to the s-th row in the partial matrix H_(x,n−1) related to the information X_(n−1) is represented as shown in Math. 239.

Accordingly, the case where elements of the s-th row in the partial matrix H_(x,n−1) related to the information X_(n−1) satisfy 1 is represented as follows.

[Math. 244]

H _(x,n−1,comp) [s][s]=1  (Math. 244)

and

[Math. 245]

When s−a_(#k,n−1,y)≧1:

H _(x,n−1,comp) [s][s−a _(#k,n−1,y)]=1  (Math. 245-1)

When s−a_(#k,n−1,y)<1:

H _(x,n−1,comp) [s][s−a _(#k,n−1,y) M]=1  (Math. 245-2)

(In the above expressions, y=1, 2, . . . , r_(n−1)−1, r_(n−1).)

Also, in H_(x,n−1,comp)[s][j] of the s-th row in the partial matrix H_(x,n−1) related to the information X_(n−1), elements other than Math. 244 and Math. 245-1, 245-2 are 0. Note that Math. 244 is an element corresponding to D⁰X_(n−1)(D)(=X_(n−1)(D)) in Math. 239 (corresponding to the diagonal element 1 in the matrix shown in FIG. 119). Also, the classification by Math. 245-1, 245-2 is provided since the partial matrix H_(x,n−1) related to the information X_(n−1) has rows 1 to M and columns 1 to M. Thus, assume that (s−1)%q=k holds true (% indicates a modulo operation) in the s-th row in the partial matrix H_(x,z) related to the information X_(z) when a parity check polynomial satisfying zero satisfies Math. 223 in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, then a parity check polynomial corresponding to the s-th row in the partial matrix H_(x,z) related to the information X_(z) is represented as shown in Math. 239.

Accordingly, the case where elements of the s-th row in the partial matrix H_(x,z) related to the information X_(z), satisfy 1 is represented as follows.

[Math. 246]

H _(x,z,comp) [s][s]=1  (Math. 246)

and

[Math. 247]

When s−a_(#k,z,y)≧1:

H _(x,z,comp) [s][s−a _(#k,z,y)]=1  (Math. 247-1)

When s−a_(#k,z,y)<1:

H _(x,z,comp) [s][s−a _(#k,z,y) +M]=1  (Math. 247-2)

(In the above expressions, y=1, 2, . . . , r_(z)−1, r_(z).)

Also, in H_(x,z,comp) [s][j] of the s-th row in the partial matrix H_(x,z) related to the information X_(z), elements other than Math. 246 and Math. 247-1, 247-2 are 0. Note that Math. 246 is an element corresponding to D⁰X_(z)(D)(=X_(z)(D)) in Math. 239 (corresponding to the diagonal element 1 in the matrix shown in FIG. 119). Also, the classification by Math. 247-1, 247-2 is provided since the partial matrix H_(x,z) related to the information X_(z) has rows I to M and columns 1 to M. Note that z is an integer equal to or greater than 1 and equal to or smaller than n−1.

Up to now, a description was given of the structure of a parity check matrix when a parity check polynomial satisfies Math. 223. In the following, a description is given of a parity check matrix when a parity check polynomial satisfying zero satisfies Math. 221 in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q.

A parity check matrix H_(m), which is generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q when a parity check polynomial satisfying zero satisfies Math. 221, is represented as shown in FIG. 118 as described above. Also, the structure of a partial matrix H_(p) related to the parity P in the parity check matrix H_(m), in this case is represented as shown in FIG. 95 as described above.

Assume that (s−1)%q=k holds true (% indicates a modulo operation) in the s-th row in the partial matrix H_(x,1) related to the information X₁ when a parity check polynomial satisfying zero satisfies Math. 221 in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, then a parity check polynomial corresponding to the s-th row in the partial matrix H_(x,1) related to the information X₁ is represented as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 248} \right\rbrack} & \; \\ {{{\left( {D^{{a\# k},1,1} + D^{{a\# k},1,2} + \ldots + {D^{{a\# k},1}r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a\# k},2,1} + D^{{a\# k},2,2} + \ldots + {D^{{a\# k},2,}r_{2}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# k},{n - 1},1} + D^{{a\# k},{n - 1},2} + \ldots + {D^{{a\# k},{n - 1},}r_{n - 1}}} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{11mu} 248} \right) \end{matrix}$

Accordingly, the case where elements of the s-th row in the partial matrix H_(x,1) related to the information X₁ satisfy 1 is represented as follows.

[Math. 249]

When s−a_(#k,1,y)≧1:

H _(x,1,comp) [s][s−a _(#k,1,y)]=1  (Math. 249-1)

When s−a_(#k,1,y)<1:

H _(x,1,comp) [s][s−a _(#k,1,y) +M]=1  (Math. 249-2)

(In the above expressions, y=1, 2, . . . , r₁-1, r₁.)

Also, in H_(x,i,comp)[s][j] of the s-th row in the partial matrix H_(x,1) related to the information X₁, elements other than Math. 249-1, 249-2 are 0,

Similarly, assume that (s−1)%q=k holds true (% indicates a modulo operation) in the s-th row in the partial matrix H_(x,2) related to the information X₂ when a parity check polynomial satisfying zero satisfies Math. 221 in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, then a parity check polynomial corresponding to the s-th row in the partial matrix H_(x,2) related to the information X₂ is represented as shown in Math. 248. Accordingly, the case where elements of the s-th row in the partial matrix H_(x,2) related to the information X₂ satisfy 1 is represented as follows.

[Math. 250]

When s−a_(#k,2,y)≧1:

H _(x,2,comp) [s][s−a _(#k,2,y)]=1  (Math. 250-1)

When s−a_(#k,2,y)<1:

H _(x,2,comp) [s][s−a _(#k,2,y) +M]=1  (Math. 250-2)

(In the above expressions, y=1, 2, . . . , r₂-1, r₂.)

Also, in H_(x,2,comp)[s][j] of the s-th row in the partial matrix H_(x,2) related to the information X₂, elements other than Math. 250-1, 250-2 are 0.

Similarly, assume that (s−1)%q=k holds true (% indicates a modulo operation) in the s-th row in the partial matrix H_(x,n−I) related to the information X_(n−1) when a parity check polynomial satisfying zero satisfies Math. 221 in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, then a parity check polynomial corresponding to the s-th row in the partial matrix H_(x,n−1) related to the information X_(n−1) is represented as shown in Math. 248. Accordingly, the case where elements of the s-th row in the partial matrix H_(x,n−1) related to the information X_(n−1) satisfy 1 is represented as follows.

[Math. 251]

When s−a_(#k,n−1,y)≧1:

H _(x,n−1,comp) [s][s−a _(#k,n−1,y)]=1  (Math. 247-1)

When s−a_(#k,n−1,y)<1:

H _(x,n−1,comp) [s][s−a _(#k,n−1,y) +M]=1  (Math. 247-2)

(In the above expressions, y=1, 2, . . . , r_(n−1)-1, r_(n−1).)

Also, in H_(x,n−1,comp)[s][j] of the s-th row in the partial matrix H_(x,n−1) related to the information X_(n−1), elements other than Math. 251-1, 251-2 are 0. Thus, assume that (s−1)%q=k holds true (% indicates a modulo operation) in the s-th row in the partial matrix H_(x,z) related to the information X_(z) when a parity check polynomial satisfying zero satisfies Math. 221 in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, then a parity check polynomial corresponding to the s-th row in the partial matrix H_(x,z) related to the information X_(z) is represented as shown in Math. 248.

Accordingly, the case where elements of the s-th row in the partial matrix H_(x,z) related to the information X_(z) satisfy 1 is represented as follows.

[Math. 252]

When s−a_(#k,z,y)≧1:

H _(x,z,comp) [s][s−a _(#k,z,y)]=1  (Math. 252-1)

When s−a_(#k,z,y)<1:

H _(x,z,comp) [s][s−a _(#k,z,y) +M]=1  (Math. 252-2)

(In the above expressions, y=1, 2, . . . , r−1, r_(z).)

Also, in H_(x,z,comp)[s][j] of the s-th row in the partial matrix H_(x,z) related to the information X_(z), elements other than Math. 252-1, 252-2 are 0. Note that z is an integer equal to or greater than 1 and equal to or smaller than n−1.

Next, a description is given of a parity check matrix for a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of the present embodiment.

When it is assumed that information X₁ constituting one block of the concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme is M bits, information X₂ is M bits, . . . , information X_(n−2) is M bits, information X_(n−1) is M bits (thus information X_(k) is M bits (k is an integer equal to or greater than 1 and equal to or smaller than n−1)), parity bit Pc is M bits (the parity Pc means a parity in the above contatenated code) (since the coding rate is (n−1)/n),

   the M-bit information X₁ of the j-th block is represented as X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M),    the M-bit information X₂ of the j-th block is represented as X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M),    .    .    .    the M-bit information X_(n−2) of the j-th block is represented as X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . , X_(j,n−2,M),    the M-bit information X_(n−1) of the j-th block is represented as X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), and    the M-bit parity bit Pc of the j-th block is represented as Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M) (thus, k = 1, 2, 3, . . . , M−1, M).

Also, the transmission sequence v_(j) is represented as v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T).

Here, a parity check matrix H_(cm) of the concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme is represented as shown in FIG. 120, and is also represented as H_(cm)=[H_(cx,1), H_(cx,2), . . . , H_(cx,n−2), H_(cx,n−1), H_(cp)]. (Here, H_(cm)v_(j)=0 holds true. Note that the zero in H_(cm)v_(j)=0 means that all elements are vectors of zero. That is to say, with regard to aech k (k is an integer equal to or greater than 1 and equal to or smaller than M), the value of the k-th row is zero) (In this regard, as described above, it is likely to be able to achieve high error-correction capability when it is assumed that information X₁ constituting one block is M=q×N bits, information X₂ is M=q×N bits, . . . , information X_(n−2) is M=q×N bits, information X_(n−1) is M=q×N bits, parity bit is M=q×N bits (N is a natural number) when the time-varying period of the feedforward LDPC convolutional code that is based on a parity check polynomial used for the above concatenated code is q. However, it is not necessarily limited to this.)

Here, H_(cx,1) indicates a partial matrix related to the information X₁ of the above-described parity check matrix H_(cm) of the concatenated code, H_(cx,2) indicates a partial matrix related to the information X₂ of the above-described parity check matrix H_(cm) of the concatenated code, . . . , H_(cx,n−2) indicates a partial matrix related to the information X_(n−2) of the above-described parity check matrix H_(cm) of the concatenated code, H_(cx,n−1) indicates a partial matrix related to the information X_(n−1) of the above-described parity check matrix H_(cm) of the concatenated code (namely, H_(cx,k) indicates a partial matrix related to the information X_(k) of the above-described parity check matrix H_(cm) of the concatenated code (k is an integer equal to or greater than 1 and equal to or smaller than n−1)), and H_(cp) indicates a partial matrix related to the parity Pc of the above-described parity check matrix H_(cm) of the concatenated code (the parity Pc means a parity in the above contatenated code), and as shown in FIG. 120, the parity check matrix H_(cm) is a matrix of M rows and n×M columns, the partial matrix H_(cx,1) related to the information X₁ is a matrix of M rows and M columns, the partial matrix H_(cx,2) related to the information X₂ is a matrix of M rows and M columns, . . . , the partial matrix H_(cx,n−2) related to the information X_(n−2) is a matrix of M rows and M columns, the partial matrix H_(cx,n−1) related to the information X_(n−1) is a matrix of M rows and M columns, and the partial matrix H_(cp) related to the parity Pc is a matrix of M rows and M columns.

FIG. 121 shows a relationship between (i) a partial matrix H_(x)=[H_(x,1) H_(x,2) . . . H_(x,n−2) H_(x,n−1)](12101 in FIG. 121) related to information X₁, X₂, . . . , X_(n−2), X_(n−1) in the parity check matrix H_(m) generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q and (ii) a partial matrix H_(cx)=[H_(cx,1) H_(cx,2) . . . H_(cx,n−2) H_(cx,n−1)](12102 in FIG. 121) related to information X₁, X₂, . . . , X_(n−2), X_(n−1) in the parity check matrix H_(cm) of the concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q using the tail-biting scheme.

In the above relationship, the partial matrix H_(x)=[H_(x,1) H_(x,2) . . . H_(x,n−2) H_(x,n−1)](12101 in FIG. 121) is a matrix composed of 11801-1 through 11801-(n-1) shown in FIG. 118, and thus is a matrix of M rows and (n−1)×M columns. Also, the partial matrix H_(cx)=[H_(cx,1) H_(cx,2) . . . H_(cx,n−2) H_(cx,n−1)](12102 in FIG. 121) is a matrix composed of 12001-1 through 12001-(n-1) shown in FIG. 120, and thus is a matrix of M rows and (n−1)×M columns.

Up to now, a description was given of the structure of the partial matrix H_(x) related to the information X₁, X₂, . . . , X_(n−2), X_(n−1) in the parity check matrix H_(m), which is generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q.

When, in the partial matrix H_(x) (12101 in FIG. 121) related to the information X₁, X₂, . . . , X_(n−2), X_(n−1) in the parity check matrix H_(m) which is generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q, it is assumed that:

   a vector generated by extracting only the first row is represented    as h_(x,1),    a vector generated by extracting only the second row is represented    as h_(x,2),    a vector generated by extracting only the third row is represented    as h_(x,3),    .    .    .    a vector generated by extracting only the k-th row is represented as h_(x,k) (k = 1, 2, 3, . . . , M−1, M),    .    .    .    a vector generated by extracting only the (M−1)th row is represented as h_(x,M−1),    a vector generated by extracting only the M-th row is represented    as h_(x,M),

then the partial matrix H_(x) (12101 in FIG. 121) related to the information X₁, X₂, . . . , X_(n−2), X_(n−1) in the parity check matrix H_(m) which is generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q is represented as shown in the following equation.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 253} \right\rbrack & \; \\ {H_{x} = \begin{bmatrix} h_{x,1} \\ h_{x,2} \\ \vdots \\ h_{x,{M - 1}} \\ h_{x,M} \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 253} \right) \end{matrix}$

In FIG. 113, an interleaver is arranged after coding of the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme. This makes it possible to generate the partial matrix H_(cx)=[H_(cx,1) H_(cx,2) . . . H_(cx,n−2) H_(cx,n−1)](12102 in FIG. 121) related to information X₁, X₂, . . . , X_(n−2), X_(n−1) when the interleave is applied after the coding of the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme, namely, to generate the partial matrix H_(cx) (12102 in FIG. 121) related to information X₁, X₂, . . . , X_(n−2), X_(n−1) of the parity check matrix H_(cm) for a concatenated code contatenating an accumulator, via the interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme, from the partial matrix H_(x) (12101 in FIG. 121) related to information X₁, X₂, . . . , X_(n−2), X_(n−1) of the parity check matrix H_(m) generated when the tail-biting is performed on the LDPC-CC that is based on a parity check polynomial having a coding rate of (n−1)/n and a time-varying period of q.

When, in the partial matrix H_(cx) (12102 in FIG. 121) related to information X₁, X₂, . . . , X_(n−2), X_(n−1) of the parity check matrix H_(cm) for a concatenated code contatenating an accumulator, via the interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n as shown in FIG. 121, it is assumed that:

   a vector generated by extracting only the first row is represented    as hc_(x,1),    a vector generated by extracting only the second row is represented    as hc_(x,2),    a vector generated by extracting only the third row is represented    as hc_(x,3),    .    .    .    a vector generated by extracting only the k-th row is represented as hc_(x,k) (k = 1, 2, 3, . . . , M−1, M),    .    .    .    a vector generated by extracting only the (M−1)th row is represented as hc_(x,M−1),    a vector generated by extracting only the M-th row is represented    as hc_(x,M),

then the partial matrix H, (12102 in FIG. 121) related to information X₁, X₂, . . . , X_(n−2), X_(n−1) of the parity check matrix H_(cm) for a concatenated code contatenating an accumulator, via the interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n is represented as shown in the following equation.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 254} \right\rbrack & \; \\ {H_{cx} = \begin{bmatrix} {hc}_{x,1} \\ {hc}_{x,2} \\ \vdots \\ {hc}_{x,{M - 1}} \\ {hc}_{x,M} \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 254} \right) \end{matrix}$

Here, the vector hc_(x,k) (k=1, 2, 3, . . . , M−1, M), which is generated by extracting only the k-th row from the partial matrix H_(cx), (12102 in FIG. 121) related to information X₁, X₂, . . . , X_(n−2), X_(n−1) of the parity check matrix H_(cm) for a concatenated code contatenating an accumulator, via the interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, can be represented as any of h_(x,i),(i=1, 2, 3, . . . , M−1, M). (In other words, the interleave causes h_(x,i) (i=1, 2, 3, . . . , M−1, M) to be arranged at any of vector hc_(x,k) generated by extracting only the k-th row.) In FIG. 121, for example, vector hc_(x,1) generated by extracting only the first row is represented as hc_(x,1)=h_(x,47), and vector hc_(x,M) generated by extracting only the M-th row is represented as hc_(x,M)=h_(x,21). Note that in the above case, only the interleave is applied, and thus the following holds true.

[Math. 255]

hc _(x,i) ≠hc _(x,j) for ∀i∀j;i≠j;i,j=1,2, . . . ,M−2,M−1,M  (Math. 255)

(i and j are integers each equal to or greater than 1 and equal to or smaller than M (i, j=1, 2, 3, . . . , M−1, M), i≠j, and the above expression holds true for all values of i and all values of j that satisfy these conditions.)

Hence

′h_(x,1), h_(x,2), h_(x,3), . . . , h_(x,M−2), h_(x,M−1), h_(x,M)

each appear only once in each of the vector hc_(x,k) (k=1, 2, 3, . . . , M−1, M) generated by extracting only the k-th row′.

That is to say, the following relationship holds true.

There is one value of k that satisfies hc_(x,k) = h_(x,1). There is one value of k that satisfies hc_(x,k) = h_(x,2). There is one value of k that satisfies hc_(x,k) = h_(x,3). . . . There is one value of k that satisfies hc_(x,k) = h_(x,j). . . . There is one value of k that satisfies hc_(x,k) = h_(x,M−2). There is one value of k that satisfies hc_(x,k) = h_(x,M−1). There is one value of k that satisfies hc_(x,k) = h_(x,M).

FIG. 99 shows the structure of a partial matrix H_(cp) related to the parity Pc (the parity Pc means a parity in the above-described contatenated code) of the parity check matrix H_(cm)=[H_(cx,1), H_(cx,2), . . . , H_(cx,n−2), H_(cx,n−1), H_(cp)] of the concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, and the partial matrix H_(cp) related to the parity Pc is a matrix of M rows and M columns. Here, it is assumed that elements of the i rows and j columns in the partial matrix H_(cp) related to the parity Pc are represented as H_(cp,comp)[i][j](i and j are integers each equal to or greater than 1 and equal to or smaller than M (i, j=1, 2, 3, . . . , M−1, M)). Then the following holds true.

[Math. 256]

When i=1:

H _(cp,comp)[1][1]=1  (Math. 256-1)

H _(cp,comp)[1][j]=0 for ∀j;j=2,3, . . . ,M−1,M  (Math. 256-2)

(In the above expression, j is an integer equal to or greater than 2 and equal to or smaller than M (j=2, 3, . . . , M−1, M), and the expression 256-2 holds true for each value of j that satisfies the condition.)

[Math. 257]

When i≠1 (i is an integer equal to or greater than 2 and equal to or smaller than M, namely i=2, 3, . . . , M−1, M):

H _(cp,comp) [i][i]=1 for ∀i;i=2,3, . . . ,M−1,M  (Math. 257-1)

(In the above expression, i is an integer equal to or greater than 2 and equal to or smaller than M (i=2, 3, . . . , M−1, M), and expression 257-1 holds true for each value of i that satisfies the condition.)

H _(cp,comp) [i][i−1]=1 for ∀i;i=2,3, . . . ,M−1,M  (Math. 257-2)

(In the above expression, i is an integer equal to or greater than 2 and equal to or smaller than M (i=2, 3, . . . , M−1, M), and expression 257-2 holds true for each value of i that satisfies the condition.)

H _(cp,comp) [i][j]=0 for ∀i∀j;i≠j;i−1≠j;i=2,3, . . . ,M−1,M;j=1,2,3, . . . ,M−1,M  (Math. 257-3)

(In the above expression, i is an integer equal to or greater than 2 and equal to or smaller than M (i=2, 3, . . . , M−1, M), j is an integer equal to or greater than 1 and equal to or smaller than M (j=1, 2, 3, . . . , M−1, M), {i≠j, or i−1≠j}, and expression 257-3 holds true for all values of i and all values of j that satisfy these conditions.)

Up to now, a description was given of the structure of a parity check matrix of a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, with reference to FIGS. 99, 120 and 121. The following describes different representation of a parity check matrix of the concatenated code, from the representation shown in FIGS. 99, 120 and 121. With reference to FIGS. 99, 120 and 121, a description was given of parity check matrixes, partial matrixes related to information in the parity check matrixes, and partial matrixes related to parities in the parity check matrixes, in correspondence with the transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . X_(j,n−2,M, X) _(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T). In the following, a description is given of a parity check matrix for a concatenated code contatenating an accumulator, via the interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, partial matrixes related to information in the parity check matrix, and partial matrixes related to the parity in the parity check matrixes, in correspondence with the case where the transmission sequence is v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . , X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T) as shown in FIG. 122 (in this case, as one example, only the parity sequence has been reordered). FIG. 122 shows the structure of a partial matrix H′_(cp) related to the parity Pc (the parity Pc means a parity in the above-described contatenated code) of the parity check matrix of the concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, for the transmission sequence v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . , X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T) which is generated by reordering the transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,2), Pc_(j,2) . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) in FIGS. 99, 120 and 121. Note that the partial matrix H′_(cp) related to the parity Pc is a matrix of M rows and M columns. Here, it is assumed that elements of the i rows and j columns in the partial matrix H′_(cp) related to the parity Pc are represented as H′_(cp,comp)[i][j](i and j are integers each equal to or greater than 1 and equal to or smaller than M (i, j=1, 2, 3, . . . , M−1, M)). Then the following holds true.

[Math. 258]

When i≠M (i is an integer equal to or greater than 1 and equal to or smaller than M−1, namely i=1, 2, . . . , M−1):

H′ _(cp,comp) [i][i]=1 for ∀i;i=1,2, . . . ,M−1  (Math. 258-1)

(In the above expression, i is an integer equal to or greater than 1 and equal to or smaller than M−1 (i=1, 2, . . . , M−1), and expression 258-1 holds true for each value of i that satisfies the condition.)

H′ _(cp,comp) [i][i+1]=1 for ∀i;i=1,2, . . . ,M−1  (Math. 258-2)

(In the above expression, i is an integer equal to or greater than 1 and equal to or smaller than M−1 (i=1, 2, . . . , M−1), and expression 258-2 holds true for each value of i that satisfies the condition.)

H′ _(cp,comp) [i][j]=0 for ∀i∀j;i≠j;i+1≠j;i=1,2, . . . ,M−1;j=1,2,3, . . . ,M−1,M  (Math. 258-3)

(In the above expression, i is an integer equal to or greater than 1 and equal to or smaller than M−1 (i=1, 2, . . . , M−1), j is an integer equal to or greater than 1 and equal to or smaller than M (j=1, 2, 3, . . . , M−1, M), {i≠j, or i+1≠j}, and expression 258-3 holds true for all values of i and all values of j that satisfy these conditions.)

[Math. 259]

When i=M:

H′ _(cp,comp) [M][M]=1  (Math. 259-1)

H′ _(cp,comp) [M][j]=0 for ∀j;j=1,2, . . . ,M−1  (Math. 259-2)

(In the above expression, j is an integer equal to or greater than 1 and equal to or smaller than M−1 (j=1, 2, . . . , M−1), and expression 259-2 holds true for each value of j that satisfies the condition.)

FIG. 123 shows the structure of a partial matrix H′_(ex) (12302 in FIG. 123) related to information X₁, X₂, . . . , X_(n−2), X_(n−1) in the parity check matrix of the concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, for the transmission sequence v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . , X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T) which is generated by reordering the transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , PC_(j,M))^(T) in FIGS. 99, 120 and 121. Note that the partial matrix H′_(cx) related to the information X₁, X₂, . . . , X_(n−2), X_(n−1) is a matrix of M rows and (n−1)×M columns. Also, for the sake of comparison, the structure of the partial matrix H_(cx)=[H_(cx,1) H_(cx,2) . . . H_(cx,n−2) H_(cx,n−1)](12301 in FIG. 123 which is the same as 12102 in FIG. 121) related to the information X₁, X₂, . . . , X_(n−2), X_(n−1) in the transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M, Pc) _(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) shown in FIGS. 99, 120 and 121 is also shown.

In FIG. 123, Hex(12301) is the partial matrix related to the information X₁, X₂, . . . , X_(n−2), X_(n−1) in the transmission sequence v_(j)=(X_(j,i,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1, X) _(j,n−2,2), . . . , X_(j,n−2,k), . . . , X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,1), . . . , Pc_(j,2), . . . , Pc_(j,M))^(T) shown in FIGS. 99, 120 and 121, and is the same as H_(cx) shown in FIG. 121. Here, similarly to description of FIG. 121, a vector that is generated by extracting only the k-th row from the partial matrix H_(cx) (12301) related to information X₁, X₂, . . . , X_(n−2), X_(n−1) is represented as hc_(x,k) (k=1, 2, 3, . . . , M−1, M).

In FIG. 123, H′_(cx) (12302) is a partial matrix related to the information X₁, X₂, . . . , X_(n−2), X_(n−1) of a parity check matrix for a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, for the transmission sequence v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . , X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T). Here, when the vector hc_(x,k) (k=1, 2, 3, . . . , M−1, M) is used, each row of the partial matrix H′_(c) X (12302) related to the information X₁, X₂, . . . , X_(n−2), X_(n−1) is represented as follows.

‘The first row is represented as hc_(x,M), the second row is represented as hc_(x,M−1), . . . the (M−1)th row is represented as hc_(x,2), and the M-th row is represented as hc_(x,1)’.

That is to say, a vector generated by extracting only the k-th row (k=1, 2, 3, . . . , M−1, M) from the partial matrix H′_(cx) (12302) related to information X₁, X₂, . . . , X_(n−2), X_(n−1) is represented as hc_(x,M−k+1). Note that the partial matrix H′_(cx) (12302) related to information X₁, X₂, . . . , X_(n−2), X_(n−1),is a matrix of M rows and (n−1)×M columns.

FIG. 124 shows the structure of the parity check matrix of the concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, for the transmission sequence v′_(j)=(X_(j,1,1), X_(1,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . , X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T) which is generated by reordering the transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) shown in FIGS. 99, 120 and 121. Here the parity check matrix is assumed to be H′_(cm), and the parity check matrix H′_(cm) is represented as H′_(cm)=[H′_(cx) H′_(cp)]=[H′_(cx,1), H′_(cx,2), . . . , H′_(cx,n−2), H′_(cx,n−1), H′_(cp)] by using the partial matrix H′_(cp) related to the parity described with reference to FIG. 122 and the partial matrix H′_(cx) related to the information X₁, X₂, . . . , X_(n−2), X_(n−1) described with reference to FIG. 123. Note that, as shown in FIG. 124, H′_(cx,k) is a partial matrix related to information X_(k) (k is an integer equal to or greater than 1 and equal to or smaller than n−1). Also, the parity check matrix H′_(cm) is a matrix of M rows and n×M columns, and H′_(cm) v′_(j)=0 holds true. (Note that the zero in H′_(cm)v′_(j)=0 means that all elements are vectors of zero. That is to say, with regard to each k (k is an integer equal to or greater than 1 and equal to or smaller than M), the value of the k-th row is zero.)

Up to now, a description was given of an example of the structure of a parity check matrix for a reordered transmission sequence. In the following, a generalized description is given of the structure of a parity check matrix for a reordered transmission sequence.

In the above, a description was given of the structure of the parity check matrix H_(cm) of a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, with reference to FIGS. 99, 120 and 121. In the case of the description, the transmission sequence is v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T), and H_(cm)v_(j)=0 holds true. (Note that the zero in H_(cm)v_(j)=0 means that all elements are vectors of zero. That is to say, with regard to each k (k is an integer equal to or greater than 1 and equal to or smaller than M), the value of the k-th row is zero.)

Next, a description is given of the structure of a parity check matrix of a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, for a reordered transmission sequence.

FIG. 125 shows a parity check matrix of the concatenated code described above with reference to FIG. 120. Here, as described above, the transmission sequence of the j-th block is represented as v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T), and this transmission sequence v_(j) of the j-th block is represented as v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . , X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T)=(Y_(j,1), Y_(j,2), Y_(j,3) . . . , Y_(j,nM−2), Y_(j,nM−1), Y_(j,nM))^(T). In the above expression, Y_(j,k) is information X₁, information X₂, . . . , information X_(n−1) or the parity Pc. (For the generalized description, no distinction is made among information X₁, information X₂, . . . , information X_(n−1) and the parity Pc.) Here, it is supposed that elements of the k-th row (k is an integer equal to or greater than 1 and equal to or smaller than n×M) in the transmission sequence v_(j) of the j-th block (in FIG. 125, in the case of the transposed matrix v_(j) ^(T) of the transmission sequence v_(j), elements of the k-th column) are represented as Y_(j,k), and a vector generated by extracting the k-th column of the parity check matrix H_(cm) of a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n is represented as c_(k) as shown in FIG. 125. Then the parity check matrix H_(cm) of the above-described concatenated code is represented as follows.

[Math. 260]

H _(cm) =[c ₁ c ₂ C ₃ . . . c _(nM−2) c _(nM−1) c _(nM])  (Math. 260)

Next, with reference to FIG. 126, a description is given of the structure of a parity check matrix of the above-described concatenated code for a transmission sequence that is generated by reordering the elements of the above-described transmission sequence of the j-th block: v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,nM−2), Y_(j,nM−1), Y_(j,nM))^(T). Here, a consideration is given of a parity check matrix for a case where, as a result of the reordering of the elements of the transmission sequence of the j-th block: v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,1), Pc_(j,2), . . . , . . . , Pc_(j,k), . . . , Pc_(j,M))^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,nM−2), Y_(j,nM−1), Y_(j,nM))^(T), a transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) is obtained as shown in FIG. 126. Note that, as described above, v′_(j) indicates a transmission sequence that is generated by reordering the elements of the transmission sequence v_(j) of the j-th block. Accordingly, v′_(j) is a vector of one row and n×M columns, and each of n×M elements of v′_(j) has a respective one of Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,nM−2), Y_(j,nM−1), Y_(j,nM).

FIG. 126 shows the structure of a parity check matrix H′_(cm), for the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). Here, elements of the first row of the transmission sequence v′_(j) of the j-th block (in FIG. 126, in the case of the transposed matrix v′_(j) ^(T) of the transmission sequence v′_(j), elements of the first column) are represented as Y_(j,32). Thus a vector generated by extracting the first column of the parity check matrix H′_(cm) is represented as c₃₂ when the above-described vector C_(k) (k=1, 2, 3, . . . , n×M−2, n×M−1, n×M) is used. Similarly, elements of the second row of the transmission sequence v′_(j) of the j-th block (in FIG. 126, in the case of the transposed matrix v′_(j)T of the transmission sequence v′_(j), elements of the second column) are represented as Y_(j,99). Thus a vector generated by extracting the second column of the parity check matrix H′_(cm) is represented as c₉₉. Furthermore, a vector generated by extracting the third column of the parity check matrix H′_(c) m is represented as c₂₃, a vector generated by extracting the (n×M−2)th column of the parity check matrix H′_(cm) is represented as c₂₃₄, a vector generated by extracting the (n×M−1)th column of the parity check matrix H′_(cm) is represented as c₃, and a vector generated by extracting the (n×M)th column of the parity check matrix H′_(cm) is represented as c₄₃.

Thus, when elements of the i-th row of the transmission sequence v′_(j) of the j-th block (in FIG. 126, in the case of the transposed matrix v′_(j) ^(T) of the transmission sequence v′_(j), elements of the i-th column) are represented as Y_(j,g) (g=1, 2, 3, . . . , n×M−2, n×M−1, n×M), a vector generated by extracting the i-th column of the parity check matrix H′_(cm) is represented as c_(g) when the above-described vector c_(k) is used.

Accordingly, the parity check matrix H′_(cm) for the transmission sequence (codeword) v′,=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) is represented as follows.

[Math. 261]

H′ _(cm) =[c ₃₂ c ₉₉ c ₂₃ . . . c ₂₃₄ c ₃ c _(43])  (Math. 261)

Note that the method of creating a parity check matrix of the transmission sequence v′_(j) of the j-th block is not limited to the above-described method, but the parity check matrix can be obtained as far as the parity check matrix is created in accordance with the above rule: when elements of the i-th row of the transmission sequence v′_(j) of the j-th block (in FIG. 126, in the case of the transposed matrix v′_(j) ^(T) of the transmission sequence v′_(j), elements of the i-th column) are represented as Y_(j,g) (g=1, 2, 3, . . . , n×M−2, n×M−1, n×M), a vector generated by extracting the i-th column of the parity check matrix H′_(cm) is represented as c_(g) when the above-described vector c_(k) is used.

An explanation is given of the above interpretation. First, a general description is given of the reordering of elements of a transmission sequence (codeword). FIG. 105 shows the structure of a parity check matrix H of an LDPC (block) code having a coding rate of (N−M)/N(N>M>0), and for example, the parity check matrix shown in FIG. 105 is a matrix of M rows and N columns. In FIG. 105, a transmission sequence (codeword) of the j-th block is assumed to be v_(j) ^(T)=(Y_(j,1), Y_(1,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)) (in the case of a systematic code, Y_(j,k) (k is an integer equal to or greater than 1 and equal to or smaller than N) is information X or a parity P). In this case, Hv_(j)=0 holds true. (Note that the zero in Hv_(j)=0 means that all elements are vectors of zero. That is to say, with regard to each k (k is an integer equal to or greater than 1 and equal to or smaller than M), the value of the k-th row is zero.) Here, it is supposed that elements of the k-th row (k is an integer equal to or greater than 1 and equal to or smaller than N) in the transmission sequence v_(j) of the j-th block (in FIG. 105, in the case of the transposed matrix v_(j) ^(T) of the transmission sequence v_(j), elements of the k-th column) are represented as Y_(j,k), and a vector generated by extracting the k-th column of the parity check matrix H of an LDPC (block) code having a coding rate of (N−M)/N(N>M>0) is represented as c_(k) as shown in FIG. 105. Then the parity check matrix H of the LDPC (block) code is represented as follows.

[Math. 262]

H=[c ₁ c ₂ c ₃ . . . c _(N−2) c _(N−1) c _(N])  (Math. 262)

FIG. 106 shows the structure for applying the interleave to the transmission sequence (codeword) v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)) of the j-th block. In FIG. 106, an encoding section 10602 inputs information 10601, encodes it, and outputs encoded data 10603. For example, when the LDPC (block) code having a coding rate of (N−M)/N(N>M>0) shown in FIG. 106 is encoded, the encoding section 10602 inputs information of the j-th block, encodes it based on the parity check matrix H of the LDPC (block) code having a coding rate of (N−M)/N(N>M>0) shown in FIG. 105, and outputs the transmission sequence (codeword) v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)) of the j-th block.

An accumulation and reordering section (interleave section) 10604 inputs the encoded data 10603, accumulates the encoded data 10603, performs reordering, and outputs interleaved data 10605. Accordingly, the accumulation and reordering section (interleave section) 10604 inputs the transmission sequence (codeword) v_(j) ═(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)) of the j-th block, reorders the elements of the transmission sequence v′_(j), and then, as shown in FIG. 106, outputs the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). Note that, as described above, v′_(j) indicates a transmission sequence that is generated by reordering the elements of the transmission sequence v_(j) of the j-th block. Therefore v′_(j) is a vector of one row and N columns, and each of N elements of v′_(j) has a respective one of Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N).

Here, a consideration is given of an encoding section 10607 having the functions of the encoding section 10602 and the accumulation and reordering section (interleave section) 10604 as shown in FIG. 106. In that case, the encoding section 10607 inputs the information 10601, encodes it, and outputs the encoded data 10603. For example, the encoding section 10607 inputs the information of the j-th block and outputs the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) as shown in FIG. 106. Here, a description is given of a parity check matrix H′ of an LDPC (block) code having a coding rate of (N−M)/N(N>M>0) corresponding to the encoding section. 10607 of this case, with reference to FIG. 107.

FIG. 107 shows the structure of a parity check matrix H′ for the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). Here, elements of the first row of the transmission sequence v′_(j) of the j-th block (in FIG. 107, in the case of the transposed matrix v′_(j) ^(T) of the transmission sequence v′_(j), elements of the first column) are represented as Y_(j,32). Thus a vector generated by extracting the first column of the parity check matrix H′ is represented as c₃₂ when the above-described vector c_(k) (k=1, 2, 3, . . . , N−2, N−1, N) is used. Similarly, elements of the second row of the transmission sequence v′_(j) of the j-th block (in FIG. 107, in the case of the transposed matrix v′_(j) ^(T) of the transmission sequence v′_(j), elements of the second column) are represented as Y_(j,99). Thus a vector generated by extracting the second column of the parity check matrix H′ is represented as c₉₉. Furthermore, a vector generated by extracting the third column of the parity check matrix H′ is represented as c₂₃, a vector generated by extracting the (N−2)th column of the parity check matrix H′ is represented as c₂₃₄, a vector generated by extracting the (N−1)th column of the parity check matrix H′ is represented as c₃, and a vector generated by extracting the N-th column of the parity check matrix H′ is represented as c₄₃.

Thus, when elements of the i-th row of the transmission sequence v′_(j) of the j-th block (in FIG. 107, in the case of the transposed matrix v′_(j) ^(T) of the transmission sequence v′_(j), elements of the i-th column) are represented as Y_(j,g) (g=1, 2, 3, . . . , N−2, N−1, N), a vector generated by extracting the i-th column of the parity check matrix H′ is represented as c_(g) when the above-described vector c_(k) is used.

Accordingly, the parity check matrix H′ for the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) is represented as follows.

[Math. 263]

H′=[c ₃₂ c ₉₉ c ₂₃ . . . c ₂₃₄ c ₃ c _(43])  (Math. 263)

Note that the method of creating a parity check matrix of the transmission sequence v′_(j) of the j-th block is not limited to the above-described method, but the parity check matrix can be obtained as far as the parity check matrix is created in accordance with the above rule: when elements of the i-th row of the transmission sequence v′_(j) of the j-th block (in FIG. 107, in the case of the transposed matrix v′_(j) ^(T) of the transmission sequence v′_(j), elements of the i-th column) are represented as Y_(j,g) (g=1, 2, 3, . . . , N−2, N−1, N), a vector generated by extracting the i-th column of the parity check matrix H′ is represented as c_(g) when the above-described vector c_(k) is used.

Accordingly, when the interleave is applied to a transmission sequence (codeword) of a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, the parity check matrix of the transmission sequence (codeword) to which the interleave has been applied is a matrix obtained by performing a column replacement onto a parity check matrix of a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, as described above.

Thus, naturally, a transmission sequence obtained by reordering the elements of the transmission sequence (codeword), to which the interleave has been applied, back to the original order is the above-described transmission sequence (codeword) of the concatenated code, and the parity check matrix thereof is a parity check matrix of a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n.

FIG. 108 shows one example of the structure pertaining to decoding of the receiving device when the encoding shown in FIG. 106 is performed. The transmitting device transmits a modulated signal which is obtained as a result of performing processes such as mapping based on a modulation method, frequency conversion, amplification of a modulated signal and the like onto a transmission sequence having been encoded as shown in FIG. 106. The receiving device receives, as a received signal, the modulated signal transmitted by the transmitting device. A bit log-likelihood ratio calculating section 10800 shown in FIG. 108 inputs the received signal, calculates the log-likelihood ratio for each bit of the codeword, and outputs a log-likelihood ratio signal 10801. Note that the operation of the transmitting device and the receiving device has been described in Embodiment 15 with reference to FIG. 76.

For example, assume that the transmitting device transmits the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). Then the bit log-likelihood ratio calculating section 10800 calculates, from the received signal, a log-likelihood ratio of Y_(j,32), a log-likelihood ratio of Y_(j,99), a log-likelihood ratio of Y_(j,23), . . . , a log-likelihood ratio of Y_(j,234), a log-likelihood ratio of Y_(j,3), a log-likelihood ratio of Y_(j,43), and outputs the calculated log-likelihood ratios.

An accumulation and reordering section (deinterleave section) 10802 inputs the log-likelihood ratio signal 10801, performs accumulation and reordering, and outputs a deinterleaved log-likelihood ratio signal 1803.

For example, the ccumulation and reordering section (deinterleave section) 10802 inputs the log-likelihood ratio of Y_(j,32), log-likelihood ratio of Y_(j,99), log-likelihood ratio of Y_(j,23), . . . , log-likelihood ratio of Y_(j,234), log-likelihood ratio of Y_(j,3), log-likelihood ratio of Y_(j,43), reorders them, and outputs in the order of log-likelihood ratio of Y_(j,1), log-likelihood ratio of Y_(1,2), log-likelihood ratio of Y_(j,3), . . . , log-likelihood ratio of Y_(j,N−2), log-likelihood ratio of Y_(j,N−1), and log-likelihood ratio of Y_(j,N.)

The decoder 10604 inputs the deinterleaved log-likelihood ratio signal 1803, and obtains an estimation sequence 10805 by performing the belief propagation decoding such as BP decoding, sum-product decoding, min-sum decoding, offset BP decoding, normalized BP decoding, shuffled BP decoding, or layered BP decoding with scheduling, as shown in Non-Patent Literatures 4 through 6, based on the parity check matrix H of an LDPC (block) code having a coding rate of (N−M)/N(N>M>0) as shown in FIG. 105.

For example, the decoder 10604 inputs log-likelihood ratios in the order of log-likelihood ratio of Y_(j,1), log-likelihood ratio of Y_(j,2), log-likelihood ratio of Y_(j,3), . . . , log-likelihood ratio of Y_(j,N−2), log-likelihood ratio of Y_(j,N−1), and log-likelihood ratio of Y_(j,N), and obtains an estimation sequence by performing the belief propagation decoding based on the parity check matrix H of an LDPC (block) code having a coding rate of (N−M)/N(N>M>0) as shown in FIG. 105.

The following describes a structure pertaining to decoding which is different from the above-described one. The difference from the above-described structure is that it does not include the accumulation and reordering section (deinterleave section) 10802. The bit log-likelihood ratio calculating section 10800 in this structure operates in the same manner as the above-described one, and description thereof is omitted.

For example, assume that the transmitting device transmits the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) of the j-th block. Then the bit log-likelihood ratio calculating section 10800 calculates, from the received signal, a log-likelihood ratio of Y_(j,32), a log-likelihood ratio of Y_(j,99), a log-likelihood ratio of Y_(j,23), . . . , a log-likelihood ratio of Y_(1,234), a log-likelihood ratio of Y_(j,3), a log-likelihood ratio of Y_(j,43), and outputs the calculated log-likelihood ratios (corresponding to 10806 in FIG. 108).

The decoder 10607 inputs a bit log-likelihood ratio signal 1806, and obtains an estimation sequence 10809 by performing the belief propagation decoding such as BP decoding, sum-product decoding, min-sum decoding, offset BP decoding, normalized BP decoding, shuffled BP decoding, or layered BP decoding with scheduling, as shown in Non-Patent Literatures 4 through 6, based on the parity check matrix H′ of an LDPC (block) code having a coding rate of (N−M)/N(N>M>0) as shown in FIG. 107.

For example, the decoder 10607 inputs log-likelihood ratios in the order of log-likelihood ratio of Y_(j,32), log-likelihood ratio of Y_(j,99), log-likelihood ratio of Y_(j,23), . . . , log-likelihood ratio of Y_(j,234), log-likelihood ratio of Y_(j,3), and log-likelihood ratio of Y_(j,43), and obtains an estimation sequence by performing the belief propagation decoding based on the parity check matrix H of an LDPC (block) code having a coding rate of (N−M)/N(N>M>0) as shown in FIG. 107.

As described above, if the transmitting device reorders the data to be transmitted, by applying the interleave to the transmission sequence v_(j)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N))^(T) of the j-th block, the receiving device can obtain an estimation sequence by using a parity check matrix corresponding to the reordering. Accordingly, when the interleave is applied to a transmission sequence (codeword) of a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, the receiving device can obtain an estimation sequence by using a matrix obtained by performing a column replacement onto a parity check matrix of a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, as the parity check matrix of the transmission sequence (codeword) to which the interleave has been applied, and performing the belief propagation decoding, without applying the deinterleave, onto the obtained log-likelihood ratio of each bit, as described above.

Up to now, a description was given of the relationship between the interleave of the transmission sequence and the parity check matrix. The following describes the row replacement in the parity check matrix.

FIG. 109 shows a structure of the parity check matrix H corresponding to the transmission sequence (codeword) v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)) of the j-th block in the LDPC (block) code having a coding rate of (N−M)/N(N>M>0). (in the case of a systematic code, Y_(j,k) (k is an integer equal to or greater than 1 and equal to or smaller than N) is information X or a parity P, and includes (N−M) pieces of information and M parities.) In this case, Hv_(j)=0 holds true. (Note that the zero in Hv_(j)=0 means that all elements are vectors of zero. That is to say, with regard to each k (k is an integer equal to or greater than 1 and equal to or smaller than M), the value of the k-th row is zero.) Also, a vector generated by extracting the k-th row of the parity check matrix H of FIG. 109 is represented as z_(k). Then the parity check matrix H of the LDPC (block) code is represented as follows.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 264} \right\rbrack & \; \\ {H = \begin{bmatrix} z_{1} \\ z_{2} \\ \vdots \\ z_{M - 1} \\ z_{M} \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 264} \right) \end{matrix}$

Next, a consideration is given of a parity check matrix obtained by performing a row replacement onto the parity check matrix H shown in FIG. 109. FIG. 110 shows an example of the parity check matrix H′ obtained by performing a row replacement onto the parity check matrix H. As in FIG. 109, the parity check matrix H′ is a parity check matrix corresponding to the transmission sequence (codeword) v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)) of the j-th block in the LDPC (block) code having a coding rate of (N−M)/N. The parity check matrix H′ shown in FIG. 110 is composed of the vector z_(k) generated by extracting the k-th row (k is an integer equal to or greater than 1 and equal to or smaller than M) of the parity check matrix H shown in FIG. 109. As one example, it is assumed that the first row of the parity check matrix H′ is composed of a vector z₁₃₀, the second row is composed of a vector z₂₄, the third row is composed of a vector z₄₅, . . . , the (M−2)th row is composed of a vector z₃₃, the (M−1)th row is composed of a vector z₉, and the M-th row is composed of a vector z₃. Note that M row vectors generated by extracting the k-th row (k is an integer equal to or greater than 1 and equal to or smaller than M) from the parity check matrix H′ include z₁, z₂, z₃, . . . , z_(M−2), z_(M−1), and z_(M), respectively.

In this case, the parity check matrix H′ of the LDPC (block) code is represented as follows.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 265} \right\rbrack & \; \\ {H^{\prime} = \begin{bmatrix} z_{130} \\ z_{24} \\ \vdots \\ z_{9} \\ z_{3} \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 265} \right) \end{matrix}$

In this case, Hv_(j)=0 holds true. (Note that the zero in Hv_(j)=0 means that all elements are vectors of zero. That is to say, with regard to each k (k is an integer equal to or greater than 1 and equal to or smaller than M), the value of the k-th row is zero.)

That is to say, for the transmission sequence v_(j) ^(T) of the j-th block, a vector generated by extracting the i-th row of the parity check matrix H′ is represented as vector c_(k) (k is an integer equal to or greater than 1 and equal to or smaller than M), M row vectors generated by extracting the k-th row (k is an integer equal to or greater than 1 and equal to or smaller than M) from the parity check matrix H′ include z₁, z₂, z₃, . . . , z_(M−2), z_(M−1), and z_(M), respectively.

Note that the method of creating a parity check matrix of the transmission sequence v_(j) of the j-th block is not limited to the above-described method, but the parity check matrix can be obtained as far as the parity check matrix is created in accordance with the above rule: for the transmission sequence v_(j) ^(T) of the j-th block, a vector generated by extracting the i-th row of the parity check matrix H′ is represented as vector c_(k) (k is an integer equal to or greater than 1 and equal to or smaller than M), M row vectors generated by extracting the k-th row (k is an integer equal to or greater than 1 and equal to or smaller than M) from the parity check matrix H′ include z₁, z₂, z₃, . . . , z_(M−2), z_(M−1), and z_(M), respectively.

Accordingly, when a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n is used, the parity check matrixes described with reference to FIGS. 118 through 124 may not necessarily be used, but a matrix obtained by performing the above-described column or row replacement onto the parity check matrix shown in FIG. 120 or 124 may be used as the parity check matrix.

Next, a description is given of a concatenated code contatenating an accumulator shown in FIGS. 89 and 90, via an interleaver, with a feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme.

When it is assumed that information X₁ constituting one block of the concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme is M bits, information X₂ is M bits, . . . , information X_(n−2) is M bits, information X_(n−1) is M bits (thus information X_(k) is M bits (k is an integer equal to or greater than 1 and equal to or smaller than n−1)), parity bit Pc is M bits (the parity Pc means a parity in the above contatenated code) (since the coding rate is (n−1)/n),

   the M-bit information X₁ of the j-th block is represented as X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M),    he M-bit information X₂ of the j-th block is represented as X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M),    .    .    .    the M-bit information X_(n−2) of the j-th block is represented as X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . , X_(j,n−2,M),    the M-bit information X_(n−1) of the j-th block is represented as X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), and    the M-bit parity bit Pc of the j-th block is represented as Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M) (thus, k = 1, 2, 3, . . . , M−1, M).

Also, the transmission sequence v_(j) is represented as v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T). Here, a parity check matrix H_(cm) of the concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme is represented as shown in FIG. 120, and is also represented as H_(cm)=[H_(cx,1), H_(cx,2), . . . , H_(cx,n−2), H_(cx,n−1), H_(cp)]. (Here, H_(cm)v_(j)=0 holds true. Note that the zero in H_(cm)v_(j)=0 means that all elements are vectors of zero. That is to say, with regard to each k (k is an integer equal to or greater than 1 and equal to or smaller than M), the value of the k-th row is zero.) In this case, H_(cx,1) is a partial matrix related to information X₁ of the above-described parity check matrix H_(cm) of the concatenated code, H_(cx,2) is a partial matrix related to information X₂ of the above-described parity check matrix H_(cm) of the concatenated code, . . . , H_(cx,n−2) is a partial matrix related to information X_(n−2) of the above-described parity check matrix H_(cm) of the concatenated code, H_(cx,n−1) is a partial matrix related to information X_(n−1) of the above-described parity check matrix H_(cm) of the concatenated code, (that is to say, H_(cx,k) is a partial matrix related to information X_(k) of the above-described parity check matrix H_(cm) of the concatenated code (k is an integer equal to or greater than 1 and equal to or smaller than n−1)), and H_(cp) is a partial matrix related to the parity Pc (the parity Pc means a parity in the above contatenated code) of the above-described parity check matrix H_(cm) of the concatenated code. Also, as shown in FIG. 120, the parity check matrix H_(cm) is a matrix of M rows and n×M columns, the partial matrix H_(cx,1) related to the information X₁ is a matrix of M rows and M columns, the partial matrix H_(cx,2) related to the information X₂ is a matrix of M rows and M columns, the partial matrix H_(cx,n−2) related to the information X_(n−2) is a matrix of M rows and M columns, the partial matrix H_(cx,n−1), related to the information X_(n−1) is a matrix of M rows and M columns, and the partial matrix H_(1P) related to the parity Pc is a matrix of M rows and M columns. Note that the structure of the partial matrix H_(cx) related to the information X₁, X₂, . . . , X_(n−1) is as described above with reference to FIG. 121. Thus in the following, a description is given of the structure of the partial matrix H_(cp) related to the parity Pc.

FIG. 111 shows one example of the structure of the partial matrix H_(cp) related to the parity Pc when the accumulator shown in FIG. 89 is applied. In the structure of the partial matrix H_(cp) related to the parity Pc when the accumulator shown in FIG. 89 is applied, the following holds true when it is assumed that elements of the i rows and j columns in the partial matrix H_(cp) related to the parity Pc are represented as H_(cp,comp)[i][j](i and j are integers each equal to or greater than 1 and equal to or smaller than M (i, j=1, 2, 3, . . . , M−1, M)).

[Math. 266]

H _(cp,comp) [i][i]=1 for ∀i;i=1,2,3, . . . ,M−1,M  (Math. 266)

(In the above expression, i is an integer equal to or greater than 1 and equal to or smaller than M (i=1, 2, 3, . . . , M−1, M), and expression 266 holds true for each value of i that satisfies the condition.)

Also, the following is satisfied.

[Math. 267]

In the following expression, i is an integer equal to or greater than 1 and equal to or smaller than M (i=1, 2, 3, . . . , M−1, M), and j is an integer equal to or greater than 1 and equal to or smaller than M (j=1, 2, 3, . . . , M−1, M), and there are values of i and j that satisfy i>j and Math. 267.

H _(cp,comp) [i][j]=1 for i>j;i,j=1,2,3, . . . ,M−1,M  (Math. 267)

Also, the following is satisfied.

[Math. 268]

In the following expression, i is an integer equal to or greater than 1 and equal to or smaller than M (i=1, 2, 3, . . . , M−1, M), and j is an integer equal to or greater than 1 and equal to or smaller than M (j=1, 2, 3, . . . , M−1, M), and i<j, and Math. 268 holds true for all values of i and all values of j that satisfy i<j.

H _(cp,comp) [i][j]=0 for ∀i∀j;i<j;i,j=1,2,3, . . . ,M−1,M  (Math. 268)

The partial matrix H_(cp) related to the parity Pc when the accumulator shown in FIG. 89 is applied satisfies the above conditions. FIG. 112 shows one example of the structure of the partial matrix H_(cp) related to the parity Pc when the accumulator shown in FIG. 90 is applied. In the structure, shown in FIG. 112, of the partial matrix H_(cp) related to the parity Pc when the accumulator shown in FIG. 90 is applied, the following holds true when it is assumed that elements of the i rows and j columns in the partial matrix H_(cp) related to the parity Pc are represented as H_(cp,comp) [i][j](i and j are integers each equal to or greater than 1 and equal to or smaller than M (i, j=1, 2, 3, . . . , M−1, M)).

[Math. 269]

H _(cp,comp) [i][i]=1 for ∀i;i=1,2,3, . . . ,M−1,M  (Math. 269)

(In the above expression, i is an integer equal to or greater than 1 and equal to or smaller than M (i=1, 2, 3, . . . , M−1, M), and expression 269 holds true for each value of i that satisfies the condition.)

[Math. 270]

H _(cp,comp) [i][i−1]=1 for ∀i;i=2,3, . . . ,M−1,M  (Math. 270)

(In the above expression, i is an integer equal to or greater than 2 and equal to or smaller than M (i=2, 3, . . . , M−1, M), and expression 270 holds true for each value of i that satisfies the condition.)

Also, the following is satisfied.

[Math. 271]

In the following expression, i is an integer equal to or greater than 1 and equal to or smaller than M (i=1, 2, 3, . . . , M−1, M), and j is an integer equal to or greater than 1 and equal to or smaller than M (j=1, 2, 3, . . . , M−1, M), and there are values of i and j that satisfy i−j≧2 and Math. 271.

H _(cp,comp) [i][j]=1 for i−j≧2;i,j=1,2,3, . . . ,M−1,M  (Math. 271)

Also, the following is satisfied.

[Math. 272]

In the following expression, i is an integer equal to or greater than 1 and equal to or smaller than M (i=1, 2, 3, . . . , M−1, M), and j is an integer equal to or greater than 1 and equal to or smaller than M (j=1, 2, 3, . . . , M−1, M), and Math. 272 holds true for all values of i and all values of j that satisfy i<j.

H _(cp,comp) [i][j]=0 for ∀i∀j;i<j;i,j=1,2,3, . . . ,M−1,M  (Math. 272)

The partial matrix H_(cp) related to the parity Pc when the accumulator shown in FIG. 90 is applied satisfies the above conditions.

Note that the encoding section shown in FIG. 113, the encoding section shown in FIG. 113 to which the accumulator shown in FIG. 89 is applied, and the encoding section shown in FIG. 113 to which the accumulator shown in FIG. 90 is applied each do not need to obtain a parity based on the structure shown in FIG. 113, but can obtain a parity from the above-described parity check matrix. In that case, information X₁ through X_(n−1) of the j-th block may be accumulated collectively, and a parity may be obtained by using the accumulated information X₁ through X_(n−1) and the parity check matrix.

Next, a description is given of a code generating method for a parity check matrix for a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, when all column weights of the partial matrixes related to the information X₁ through X_(n−1) are equivalent. As described above, in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, which is used in a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, the g-th (g=0, 1, . . . , q−1) parity check polynomial (see Math. 128) satisfying zero is represented as shown in Math. 273.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 273} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + {D^{{a\# g},1}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + {D^{{a\# g},2,}r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + \ldots + {D^{{a\# g},{n - 1},}r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{11mu} 273} \right) \end{matrix}$

In Math. 273, it is assumed that a_(#g,p,q) (p=1, 2, . . . , n−1; q=1,2, . . . , r_(p)) is a natural number. It is also assumed that a_(#g,p,y)≠a_(#g,p,z) is satisfied for y, z=1, 2, . . . , r_(p), ^(∀)(y, z), wherein y≠z. Here, by setting each of r₁, r₂, . . . , r_(n−2), r_(n−1) to three or greater, high error-correction capability can be achieved. Note that the following function is defined for a polynomial part of a parity check polynomial satisfying zero of Math. 273.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 274} \right\rbrack} & \; \\ {{F_{g}(D)} = {{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + {D^{{a\# g},1}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + {D^{{a\# g},2,}r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + \ldots + {D^{{a\# g},{n - 1},}r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}}} & \left( {{Math}.\mspace{11mu} 274} \right) \end{matrix}$

Here, the following two methods can be used to form the time-varying period q.

Method 1:

[Math. 275]

F _(i)(D)≠F _(j)(D)∀i∀j i,j=0,1,2, . . . ,q−2,q−1,i≠j  (Math. 266)

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and F_(i)(D)≠F_(j)(D) holds true for all values of i and all values of j that satisfy these conditions.)

Method 2:

[Math. 276]

F _(i)(D)≠F _(j)(D)  (Math. 276)

In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and there are values of i and j for which Math. 276 holds true, and

[Math. 277]

F _(i)(D)=F _(j)(D)  (Math. 277)

In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and there are values of i and j for which Math. 277 holds true, but the time-varying period is q. Note that the methods 1 and 2 for forming the time-varying q can be implemented in a similar manner even in the case where a polynomial part of a parity check polynomial satisfying zero of Math. 281 is defined as function F_(g)(D).

Next, a description is given of an example of setting a_(#g,p,q) in Math. 273, in particular when each of r₁, r₂, . . . , r_(n−2), r_(n−1) has been set to 3. When each of r₁, r₂, . . . , r_(n−2), r_(n−1) has been set to 3, parity check polynomials satisfying zero in a feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q are provided as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 278} \right\rbrack} & \; \\ {{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 0{th}\mspace{14mu} {zero}\text{:}} & \; \\ {{{{\left( {D^{{a\# \; 0},1,1} + D^{{a\# \; 0},1,2} + D^{{a\# \; 0},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 0},2,1} + D^{{a\# \; 0},2,2} + D^{{a\# \; 0},2,3} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; 0},{n - 1},1} + D^{{a\# \; 0},{n - 1},2} + D^{{a\# \; 0},{n - 1},3} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0}{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 1{st}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 278}\text{-}0} \right) \\ {{{{\left( {D^{{a\# \; 1},1,1} + D^{{a\# \; 1},1,2} + D^{{a\# \; 1},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 1},2,1} + D^{{a\# \; 1},2,2} + D^{{a\# \; 1},2,3} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; 1},{n - 1},1} + D^{{a\# \; 1},{n - 1},2} + D^{{a{\# 1}},{n - 1},3} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0}{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 2{nd}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 278}\text{-}1} \right) \\ {{{{\left( {D^{{a\# \; 2},1,1} + D^{{a\# \; 2},1,2} + D^{{a\# \; 2},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 2},2,1} + D^{{a\# \; 2},2,2} + D^{{a\# \; 2},2,3} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; 2},{n - 1},1} + D^{{a\# \; 2},{n - 1},2} + D^{{a\# \; 2},{n - 1},3} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0}\mspace{20mu} \vdots {{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} g\text{-}{th}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 287}\text{-}2} \right) \\ {{{{\left( {D^{{a\# \; g},1,1} + D^{{a\# g},1,2} + D^{{a\# \; g},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; g},2,1} + D^{{a\# \; g},2,2} + D^{{a\# g},2,3} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; g},{n - 1},1} + D^{{a\# g},{n - 1},2} + D^{{a\# \; g},{n - 1},3} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0}\mspace{20mu} \vdots {{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q\text{-}2} \right){th}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 278}\text{-}g} \right) \\ {{{{\left( {D^{{a\# \; {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + D^{{a\# \; {({q - 2})}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + D^{{a\# {({q - 2})}},2,3} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# {({q - 2})}},{n - 1},1} + D^{{a\# {({q - 2})}},{n - 1},2} + D^{{a\# \; {({q - 2})}},{n - 1},3} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0}{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q\text{-}1} \right){th}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 278}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{\left( {D^{{a\# \; {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + D^{{a\# \; {({q - 1})}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + D^{{a{({q - 1})}},2,3} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# {({q - 1})}},{n - 1},1} + D^{{a\# {({q - 1})}},{n - 1},2} + D^{{a\# \; {({q - 1})}},{n - 1},3} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{{Math}.\mspace{11mu} 278}\text{-}\left( {q\text{-}1} \right)} \right) \end{matrix}$

In this case, when descriptions of Embodiments 1 and 6 are taken into consideration, high error-correction capability can be achieved when the following conditions are satisfied.

<Condition 18-2>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1)%  q = … = a_(#g, 1, 1)%  q = … = a_(#(q − 2), 1, 1)%  q = a_(#(q − 1), 1, 1)%  q = v_(1, 1)(v_(1, 1):  fixed  value) a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)%  q = … = a_(#g, 1, 2)%  q = … = a_(#(q − 2), 1, 2)%  q = a_(#(q − 1), 1, 2)%  q = v_(1, 2)(v_(1, 2):  fixed  value) a_(#0, 1, 3)%  q = a_(#1, 1, 3)%  q = a_(#2, 1, 3)%  q = a_(#3, 1, 3)%  q = … = a_(#g, 1, 3)%  q = … = a_(#(q − 2), 1, 3)%  q = a_(#(q − 1), 1, 3)%  q = v_(1, 3)(v_(1, 3):  fixed  value) a_(#0, 2, 1)%  q = a_(#1, 2, 1)%  q = a_(#2, 2, 1)%  q = a_(#3, 2, 1)%  q = … = a_(#g, 2, 1)%  q = … = a_(#(q − 2), 2, 1)%  q = a_(#(q − 1), 2, 1)%  q = v_(2, 1)(v_(2, 1):  fixed  value) a_(#0, 2, 2)%  q = a_(#1, 2, 2)%  q = a_(#2, 2, 2)%  q = a_(#3, 2, 2)%  q = … = a_(#g, 2, 2)%  q = … = a_(#(q − 2), 2, 2)%  q = a_(#(q − 1), 2, 2)%  q = v_(2, 2)(v_(2, 2):  fixed  value) a_(#0, 2, 3)%  q = a_(#1, 2, 3)%  q = a_(#2, 2, 3)%  q = a_(#3, 2, 3)%  q = … = a_(#g, 2, 3)%  q = … = a_(#(q − 2), 2, 3)%  q = a_(#(q − 1), 2, 3)%  q = v_(2, 3)(v_(2, 3):  fixed  value)   ⋮ a_(#0, i, 1)%  q = a_(#1, i, 1)%  q = a_(#2, i, 1)%  q = a_(#3, i, 1)%  q = … = a_(#g, i, 1)%  q = … = a_(#(q − 2), i, 1)%  q = a_(#(q − 1), i, 1)%  q = v_(i, 1)(v_(i, 1):  fixed  value) a_(#0, i, 2)%  q = a_(#1, i, 2)%  q = a_(#2, i, 2)%  q = a_(#3, i, 2)%  q = … = a_(#g, i, 2)%  q = … = a_(#(q − 2), i, 2)%  q = a_(#(q − 1), i, 2)%  q = v_(i, 2)(v_(i, 2):  fixed  value) a_(#0, i, 3)%  q = a_(#1, i, 3)%  q = a_(#2, i, 3)%  q = a_(#3, i, 3)%  q = … = a_(#g, i, 3)%  q = … = a_(#(q − 2), i, 3)%  q = a_(#(q − 1), i, 3)%  q = v_(i, 3)(v_(i, 3):  fixed  value)   ⋮ a_(#0, n − 1, 1)%  q = a_(#1, n − 1, 1)%  q = a_(#2, n − 1, 1)%  q = a_(#3, n − 1, 1)%  q = … = a_(#g, n − 1, 1)%  q = … = a_(#(q − 2), n − 1, 1)%  q = a_(#(q − 1), n − 1, 1)%  q = v_(n − 1, 1)(v_(n − 1, 1):  fixed  value) a_(#0, n − 1, 2)%  q = a_(#1, n − 1, 2)%  q = a_(#2, n − 1, 2)%  q = a_(#3, n − 1, 2)%  q = … = a_(#g, n − 1, 2)%  q = … = a_(#(q − 2), n − 1, 2)%  q = a_(#(q − 1), n − 1, 2)%  q = v_(n − 1, 2)(v_(n − 1, 2):  fixed  value) a_(#0, n − 1, 3)%  q = a_(#1, n − 1, 3)%  q = a_(#2, n − 1, 3)%  q = a_(#3, n − 1, 3)%  q = … = a_(#g, n − 1, 3)%  q = … = a_(#(q − 2), n − 1, 3)%  q = a_(#(q − 1), n − 1, 3)%  q = v_(n − 1, 3)(v_(n − 1, 3):  fixed  value)

Note that in the above description, % means a modulo. Thus, α%q represents a remainder after dividing α by q. Condition 18-2 may be represented differently as follows.

<Condition 18-2′>

   a_(#k,1,1)%q = v_(1,1) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(1,1): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,1,1)%q = v_(1,1) (v_(1,1): fixed value) holds true for each value of k.)    a_(#k,1,2)%q = v_(1,2) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(1,2): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,1,2)%q = v_(1,2) (v_(1,2): fixed value) holds true for each value of k.)    a_(#k,1,3)%q = v_(1,3) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(1,3): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,1,3)%q = v_(1,3) (v_(1,3): fixed value) holds true for each value of k.)    a_(#k,2,1)%q = v2_(,1) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(2,1): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,2,1)%q = v_(2,1) (v_(2,1): fixed value) holds true for each value of k.)    a_(#k,2,2)%q = v_(2,2) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(2,2): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,2,2)%q = v_(2,2) (v_(2,2): fixed value) holds true for each value of k.)    a_(#k,2,3)%q = v_(2,3) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(2,3): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,2,3)%q = v_(2,3) (v_(2,3): fixed value) holds true for each value of k.)    .    .    .    a_(#k,i,1)%q = v_(i,1) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(i,1): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,i,1)%q = v_(i,1) (v_(i,1): fixed value) holds true for each value of k.)    a_(#k,i,2)%q = v_(i,2) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(i,2): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,i,2)%q = v_(i,2) (v_(i,2): fixed value) holds true for each value of k.)    a_(#k,i,3)%q = v_(i,3) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(i,3): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,i,3)%q = v_(i,3) (v_(i,3): fixed value) holds true for each value of k.) (i is an integer equal to or greater than 1 and equal to or smaller than n−1)    .    .    .    a_(#k,n−1,1)%q = v_(n−1,1) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(n−1,1): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,n−1,1)%q = v_(n−1,1) (v_(n−1,1): fixed value) holds true for each value of k.)    a_(#k,n−1,2)%q = v_(n−1,2) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(n−1,2): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,n−1,2)%q = v_(n−1,2) (v_(n−1,2): fixed value) holds true for each value of k.)    a_(#k,n−1,3)%q = v_(n−1,3) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(n−1,3): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,n−1,3)%q = v_(n−1,3) (v_(n−1,3): fixed value) holds true for each value of k.)

<Condition 18-3>

   v_(1,1) ≠ v_(1,2), and v_(1,1) ≠ v_(1,3), and v_(1,2) ≠ v_(1,3), and v_(1,1) ≠ 0, and v_(1,2) ≠ 0, and v_(1,3) ≠ 0    v_(2,1) ≠ v_(2,2), and v_(2,1) ≠ v_(2,3), and v_(2,2) ≠ v_(2,3), and v_(2,1) ≠ 0, and v_(2,2) ≠ 0, and v_(2,3) ≠ 0    .    .    .    v_(i,1) ≠ v_(i,2), and v_(i,1) ≠ v_(i,3), and v_(i,2) ≠ v_(i,3), and v_(i,1) ≠ 0, and v_(i,2) ≠ 0, and v_(i,3) ≠ 0 (i is an integer equal to or greater than 1 and equal to or smaller than n−1)    .    .    .    v_(n−1,1) ≠ v_(n−1,2), and v_(n−1,1) ≠ v_(n−1,3), and v_(n−1,2) ≠ v_(n−1,3), and v_(n−1,1) ≠ 0, and v_(n−1,2) ≠ 0, and v_(n−1,3) ≠ 0

Note that, in order to satisfy Condition 18-3, four or more time-varying periods q are necessary. (This is derived from the number of terms of X₁(D), X₂(D), . . . and X_(n−1)(D) in the parity check polynomial.

High error-correction capability can be achieved by obtaining a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, the concatenated code satisfying the above conditions. Also, high error-correction capability may be achieved when each value of r₁ through r_(p) is greater than 3. A description is made of this case. When each value of r₁ through r_(p) is set to be equal to or greater than 4, parity check polynomials satisfying zero in a feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q are provided as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 279} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + {D^{{a\# g},1}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + {D^{{a\# g},2,}r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + \ldots + {D^{{a\# g},{n - 1},}r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{11mu} 279} \right) \end{matrix}$

In Math. 279, it is assumed that a_(#g,p,q) (p=1, 2, . . . , n−1; q=1, 2, . . . , r_(p)) is a natural number. It is also assumed that a_(#g,p,y)≠a_(#g,p,z) is satisfied for y, z=1, 2, . . . , r_(p), ^(∀)(y, z), wherein y≠z. In this case, since each value of r₁ through r_(p) is equal to or greater than 4 and all column weights of the partial matrixes related to the information X₁ through X_(n−1) are equivalent, it is assumed that r₁=r₂= . . . =r_(n−2)=r_(n−1)=r. Thus, parity check polynomials satisfying zero in a feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q are provided as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 280} \right\rbrack} & \; \\ {{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 0{th}\mspace{14mu} {zero}\text{:}} & \; \\ {{{{\left( {D^{{a\# \; 0},1,1} + D^{{a\# \; 0},1,2} + D^{{a\# \; 0},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 0},2,1} + D^{{a\# \; 0},2,2} + D^{{a\# \; 0},2,r} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; 0},{n - 1},1} + D^{{a\# \; 0},{n - 1},2} + D^{{a\# \; 0},{n - 1},r} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0}{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 1{st}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 280}\text{-}0} \right) \\ {{{{\left( {D^{{a\# \; 1},1,1} + D^{{a\# \; 1},1,2} + D^{{a\# \; 1},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 1},2,1} + D^{{a\# \; 1},2,2} + D^{{a\# \; 1},2,r} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; 1},{n - 1},1} + D^{{a\# \; 1},{n - 1},2} + D^{{a{\# 1}},{n - 1},r} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0}{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 2{nd}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 280}\text{-}1} \right) \\ {{{{\left( {D^{{a\# \; 2},1,1} + D^{{a\# \; 2},1,2} + D^{{a\# \; 2},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 2},2,1} + D^{{a\# \; 2},2,2} + D^{{a\# \; 2},2,r} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; 2},{n - 1},1} + D^{{a\# \; 2},{n - 1},2} + D^{{a\# \; 2},{n - 1},r} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0}\mspace{20mu} \vdots {{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} g\text{-}{th}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 280}\text{-}2} \right) \\ {{{{\left( {D^{{a\# \; g},1,1} + D^{{a\# g},1,2} + D^{{a\# \; g},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; g},2,1} + D^{{a\# \; g},2,2} + D^{{a\# g},2,r} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; g},{n - 1},1} + D^{{a\# g},{n - 1},2} + D^{{a\# \; g},{n - 1},r} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0}{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q\text{-}2} \right)g\text{-}{th}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 280}\text{-}g} \right) \\ {{{{\left( {D^{{a\# \; {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + D^{{a\# \; {({q - 2})}},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + D^{{a\# {({q - 2})}},2,r} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# {({q - 2})}},{n - 1},1} + D^{{a\# {({q - 2})}},{n - 1},2} + D^{{a\# \; {({q - 2})}},{n - 1},r} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0}{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q\text{-}1} \right)g\text{-}{th}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 280}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{\left( {D^{{a\# \; {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + D^{{a\# \; {({q - 1})}},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + D^{{a{({q - 1})}},2,r} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# {({q - 1})}},{n - 1},1} + D^{{a\# {({q - 1})}},{n - 1},2} + D^{{a\# \; {({q - 1})}},{n - 1},r} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{{Math}.\mspace{11mu} 280}\text{-}\left( {q\text{-}1} \right)} \right) \end{matrix}$

In this case, when descriptions of Embodiments 1 and 6 are taken into consideration, high error-correction capability can be achieved when the following conditions are satisfied.

<Condition 18-4>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1)%  q = … = a_(#g, 1, 1)%  q = … = a_(#(q − 2), 1, 1)%  q = a_(#(q − 1), 1, 1)%  q = v_(1, 1)(v_(1, 1):  fixed  value) a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)%  q = … = a_(#g, 1, 2)%  q = … = a_(#(q − 2), 1, 2)%  q = a_(#(q − 1), 1, 2)%  q = v_(1, 2)(v_(1, 2):  fixed  value) a_(#0, 1, 3)%  q = a_(#1, 1, 3)%  q = a_(#2, 1, 3)%  q = a_(#3, 1, 3)%  q = … = a_(#g, 1, 3)%  q = … = a_(#(q − 2), 1, 3)%  q = a_(#(q − 1), 1, 3)%  q = v_(1, 3)(v_(1, 3):  fixed  value)   ⋮ a_(#0, 1, r − 1)%  q = a_(#1, 1, r − 1)%  q = a_(#2, 1, r − 1)%  q = a_(#3, 1, r − 1)%  q = … = a_(#g, 1, r − 1)%  q = … = a_(#(q − 2), 1, r − 1)%  q = a_(#(q − 1), 1, r − 1)%  q = v_(1, r − 1)(v_(1, r − 1):  fixed  value) a_(#0, 1, r)%  q = a_(#1, 1, r)%  q = a_(#2, 1, r)%  q = a_(#3, 1, r)%  q = … = a_(#g, 1, r)%  q = … = a_(#(q − 2), 1, r)%  q = a_(#(q − 1), 1, r)%  q = v_(1, r)(v_(1, r):  fixed  value) a_(#0, 2, 1)%  q = a_(#1, 2, 1)%  q = a_(#2, 2, 1)%  q = a_(#3, 2, 1)%  q = … = a_(#g, 2, 1)%  q = … = a_(#(q − 2), 2, 1)%  q = a_(#(q − 1), 2, 1)%  q = v_(2, 1)(v_(2, 1):  fixed  value) a_(#0, 2, 2)%  q = a_(#1, 2, 2)%  q = a_(#2, 2, 2)%  q = a_(#3, 2, 2)%  q = … = a_(#g, 2, 2)%  q = … = a_(#(q − 2), 2, 2)%  q = a_(#(q − 1), 2, 2)%  q = v_(2, 2)(v_(2, 2):  fixed  value) a_(#0, 2, 3)%  q = a_(#1, 2, 3)%  q = a_(#2, 2, 3)%  q = a_(#3, 2, 3)%  q = … = a_(#g, 2, 3)%  q = … = a_(#(q − 2), 2, 3)%  q = a_(#(q − 1), 2, 3)%  q = v_(2, 3)(v_(2, 3):  fixed  value)   ⋮ a_(#0, 2, r − 1)%  q = a_(#1, 2, r − 1)%  q = a_(#2, 2, r − 1)%  q = a_(#3, 2, r − 1)%  q = … = a_(#g, 2, r − 1)%  q = … = a_(#(q − 2), 2, r − 1)%  q = a_(#(q − 1), 2, r − 1)%  q = v_(2, r − 1)(v_(2, r − 1):  fixed  value) a_(#0, 2, r)%  q = a_(#1, 2, r)%  q = a_(#2, 2, r)%  q = a_(#3, 2, r)%  q = … = a_(#g, 2, r)%  q = … = a_(#(q − 2), 2, r)%  q = a_(#(q − 1), 2, r)%  q = v_(2, r)(v_(2, r):  fixed  value)   ⋮ a_(#0, i, 1)%  q = a_(#1, i, 1)%  q = a_(#2, i, 1)%  q = a_(#3, i, 1)%  q = … = a_(#g, i, 1)%  q = … = a_(#(q − 2), i, 1)%  q = a_(#(q − 1), i, 1)%  q = v_(i, 1)(v_(i, 1):  fixed  value) a_(#0, i, 2)%  q = a_(#1, i, 2)%  q = a_(#2, i, 2)%  q = a_(#3, i, 2)%  q = … = a_(#g, i, 2)%  q = … = a_(#(q − 2), i, 2)%  q = a_(#(q − 1), i, 2)%  q = v_(i, 2)(v_(i, 2):  fixed  value) a_(#0, i, 3)%  q = a_(#1, i, 3)%  q = a_(#2, i, 3)%  q = a_(#3, i, 3)%  q = … = a_(#g, i, 3)%  q = … = a_(#(q − 2), i, 3)%  q = a_(#(q − 1), i, 3)%  q = v_(i, 3)(v_(i, 3):  fixed  value)   ⋮ a_(#0, i, r − 1)%  q = a_(#1, i, r − 1)%  q = a_(#2, i, r − 1)%  q = a_(#3, i, r − 1)%  q = … = a_(#g, i, r − 1)%  q = … = a_(#(q − 2), i, r − 1)%  q = a_(#(q − 1), i, r − 1)%  q = v_(i, r − 1)(v_(i, r − 1):  fixed  value) a_(#0, i, r)%  q = a_(#1, i, r)%  q = a_(#2, i, r)%  q = a_(#3, i, r)%  q = … = a_(#g, i, r)%  q = … = a_(#(q − 2), i, r)%  q = a_(#(q − 1), i, r)%  q = v_(i, r)(v_(i, r):  fixed  value) (i  is  in  integer  equal  to  or  greater  than  1  and  equal  to  or  smaller  than  n − 1)   ⋮ a_(#0, n − 1, 1)%  q = a_(#1, n − 1, 1)%  q = a_(#2, n − 1, 1)%  q = a_(#3, n − 1, 1)%  q = … = a_(#g, n − 1, 1)%  q = … = a_(#(q − 2), n − 1, 1)%  q = a_(#(q − 1), n − 1, 1)%  q = v_(n − 1, 1)(v_(n − 1, 1):  fixed  value) a_(#0, n − 1, 2)%  q = a_(#1, n − 1, 2)%  q = a_(#2, n − 1, 2)%  q = a_(#3, n − 1, 2)%  q = … = a_(#g, n − 1, 2)%  q = … = a_(#(q − 2), n − 1, 2)%  q = a_(#(q − 1), n − 1, 2)%  q = v_(n − 1, 2)(v_(n − 1, 2):  fixed  value) a_(#0, n − 1, 3)%  q = a_(#1, n − 1, 3)%  q = a_(#2, n − 1, 3)%  q = a_(#3, n − 1, 3)%  q = … = a_(#g, n − 1, 3)%  q = … = a_(#(q − 2), n − 1, 3)%  q = a_(#(q − 1), n − 1, 3)%  q = v_(n − 1, 3)(v_(n − 1, 3):  fixed  value)   ⋮ a_(#0, n − 1, r − 1)%  q = a_(#1, n − 1r−, 1)%  q = a_(#2, n − 1r−, 1)%  q = a_(#3, n − 1r−, 1)%  q = … = a_(#g, n − 1, r − 1)%  q = … = a_(#(q − 2), n − 1, r − 1)%  q = a_(#(q − 1), n − 1, r − 1)%  q = v_(n − 1, r − 1)(v_(n − 1, r − 1):  fixed  value) a_(#0, n − 1, r)%  q = a_(#1, n − 1, r)%  q = a_(#2, n − 1, r)%  q = a_(#3, n − 1, r)%  q = … = a_(#g, n − 1, r)%  q = … = a_(#(q − 2), n − 1, r)%  q = a_(#(q − 1), n − 1, r)%  q = v_(n − 1, r)(v_(n − 1, r):  fixed  value)

Note that in the above description, % means a modulo. Thus, α%q represents a remainder after dividing α by q. Condition 18-4 may be represented differently as follows. Note that j is an integer equal to or greater than 1 and equal to or smaller than r.

<Condition 18-4′>

   a_(#k,1,j)%q = v_(1,j) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(1,j): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,1,j)%q = v_(1,j (v) _(1,j): fixed value) holds true for each value of k.)    a_(#k,2,j)%q = v_(2,j) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(2,j): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,2,j)%q = v_(2,j) (v_(2,j): fixed value) holds true for each value of k.)    .    .    .    a_(#k,i,j)%q = v_(i,j) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(i,j): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,i,j)%q = v_(i,j) (v_(i,j): fixed value) holds true for each value of k.) (i is an integer equal to or greater than 1 and equal to or smaller than n−1)    .    .    .    a_(#k,n−1,j)%q = v_(n−1,j) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(n−1,j): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,n−1,j)%q = v_(n−1,j) (v_(n−1,j): fixed value) holds true for each value of k.)

As is the case with Embodiments 1 and 6, high error-correction capability can be achieved when the following conditions are further satisfied.

<Condition 18-5>

is an integer equal to or greater than 1 and equal to or smaller than r, and

v_(s),i 0 holds true for each value of i.

and

i is an integer equal to or greater than 1 and equal to or smaller than r, and j is an integer equal to or greater than 1 and equal to or smaller than r, and v_(s,i)≠v_(s,j) holds true for all values of i and all values of j that satisfy i≠j.

Note that s is an integer equal to or greater than 1 and equal to or smaller than n−1. Note that, in order to satisfy Condition 18-5, r+1 or more time-varying periods q are necessary. (This is derived from the number of terms of X₁(D) through X_(n−1)(D) in the parity check polynomial.)

High error-correction capability can be achieved by obtaining a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, the concatenated code satisfying the above conditions. Next, a consideration is given of the case where, in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, which is used in a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, the g-th (g=0, 1, . . . , q−1) parity check polynomial satisfying zero is represented as shown in the following mathematical expression.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 281} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + {D^{{a\# g},1}r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + {D^{{a\# g},2,}r_{2}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + \ldots + {D^{{a\# g},{n - 1},}r_{n - 1}}} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{11mu} 281} \right) \end{matrix}$

In Math. 281, it is assumed that a_(#g,p,q) (p=1, 2, . . . , n−1; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. It is also assumed that a_(#g,p,y)≠a_(#g,p,z) is satisfied for y, z=1, 2, . . . , rp, ^(∀)(y, z), wherein y≠z. Next, a description is given of an example of setting a_(#g,p,q) in Math. 281, in particular when each of r₁ through r_(n−1) has been set to 4. When each of r₁ through r_(n−1) has been set to 4, parity check polynomials satisfying zero in a feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q are provided as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 282} \right\rbrack} & \; \\ {{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 0{th}\mspace{14mu} {zero}\text{:}} & \; \\ {{{{\left( {D^{{a\# \; 0},1,1} + D^{{a\# \; 0},1,2} + D^{{a\# \; 0},1,3} + D^{{a{\# 0}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 0},2,1} + D^{{a\# \; 0},2,2} + D^{{a\# \; 0},2,3} + D^{{a{\# 0}},2,4}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; 0},{n - 1},1} + D^{{a\# \; 0},{n - 1},2} + D^{{a\# \; 0},{n - 1},3} + D^{{a{\# 0}},{n - 1},4}} \right){X_{n - 1}(D)}} + {P(D)}} = 0}{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 1{st}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 282}\text{-}0} \right) \\ {{{{\left( {D^{{a\# \; 1},1,1} + D^{{a\# \; 1},1,2} + D^{{a\# \; 1},1,3} + D^{{a{\# 1}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 1},2,1} + D^{{a\# \; 1},2,2} + D^{{a\# \; 1},2,3} + D^{{a{\# 1}},1,4}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; 1},{n - 1},1} + D^{{a\# \; 1},{n - 1},2} + D^{{a\# \; 1},{n - 1},3} + D^{{a{\# 1}},{n - 1},4}} \right){X_{n - 1}(D)}} + {P(D)}} = 0}{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 2{nd}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 282}\text{-}1} \right) \\ {{{{\left( {D^{{a{\# 2}},1,1} + D^{{a\# \; 2},1,2} + D^{{a\# \; 2},1,3} + D^{{a{\# 2}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 2},2,1} + D^{{a\# \; 2},2,2} + D^{{a\# \; 2},2,3} + D^{{a{\# 2}},2,4}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; 2},{n - 1},1} + D^{{a\# \; 2},{n - 1},2} + D^{{a{\# 2}},{n - 1},3} + D^{{a{\# 2}},{n - 1},4}} \right){X_{n - 1}(D)}} + {P(D)}} = 0}\mspace{20mu} \vdots {{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} g\text{-}{th}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 282}\text{-}2} \right) \\ {{{{\left( {D^{{a\# \; g},1,1} + D^{{a\# g},1,2} + D^{{a\# \; g},1,3} + D^{{a\# g},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; g},2,1} + D^{{a\# \; g},2,2} + D^{{a\# g},2,3} + D^{{a\# g},2,4}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; g},{n - 1},1} + D^{{a\# g},{n - 1},2} + D^{{a\# \; g},{n - 1},3} + D^{{a\# g},{n - 1},4}} \right){X_{n - 1}(D)}} + {P(D)}} = 0}\mspace{20mu} \vdots {{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q\text{-}2} \right)g\text{-}{th}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 282}\text{-}g} \right) \\ {{{{\left( {D^{{a\# \; {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + D^{{a\# \; {({q - 2})}},1,3} + D^{{a\# {({q - 2})}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + D^{{a\# {({q - 2})}},2,3} + D^{{a\# {({q - 2})}},2,4}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# {({q - 2})}},{n - 1},1} + D^{{a\# {({q - 2})}},{n - 1},2} + D^{{a\# \; {({q - 2})}},{n - 1},3} + D^{{a\# {({q - 2})}},{n - 1},4}} \right){X_{n - 1}(D)}} + {P(D)}} = 0}{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q\text{-}1} \right)g\text{-}{th}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 282}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{\left( {D^{{a\# \; {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + D^{{a\# \; {({q - 1})}},1,3} + D^{{a\# {({q - 1})}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + D^{{a\# {({q - 1})}},2,3} + D^{{a\# {({q - 1})}},2,4}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# {({q - 1})}},{n - 1},1} + D^{{a\# {({q - 1})}},{n - 1},2} + D^{{a\# \; {({q - 1})}},{n - 1},3} + D^{{a\# {({q - 1})}},{n - 1},4}} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{{Math}.\mspace{11mu} 282}\text{-}\left( {q\text{-}1} \right)} \right) \end{matrix}$

In this case, when descriptions of Embodiments 1 and 6 are taken into consideration, high error-correction capability can be achieved when the following conditions are satisfied.

<Condition 18-6>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1)%  q = … = a_(#g, 1, 1)%  q = … = a_(#(q − 2), 1, 1)%  q = a_(#(q − 1), 1, 1)%  q = v_(1, 1)(v_(1, 1):  fixed  value) a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)%  q = … = a_(#g, 1, 2)%  q = … = a_(#(q − 2), 1, 2)%  q = a_(#(q − 1), 1, 2)%  q = v_(1, 2)(v_(1, 2):  fixed  value) a_(#0, 1, 3)%  q = a_(#1, 1, 3)%  q = a_(#2, 1, 3)%  q = a_(#3, 1, 3)%  q = … = a_(#g, 1, 3)%  q = … = a_(#(q − 2), 1, 3)%  q = a_(#(q − 1), 1, 3)%  q = v_(1, 3)(v_(1, 3):  fixed  value) a_(#0, 1, 4)%  q = a_(#1, 1, 4)%  q = a_(#2, 1, 4)%  q = a_(#3, 1, 4)%  q = … = a_(#g, 1, 4)%  q = … = a_(#(q − 2), 1, 4)%  q = a_(#(q − 1), 1, 4)%  q = v_(1, 4)(v_(1, 4):  fixed  value) a_(#0, 2, 1)%  q = a_(#1, 2, 1)%  q = a_(#2, 2, 1)%  q = a_(#3, 2, 1)%  q = … = a_(#g, 2, 1)%  q = … = a_(#(q − 2), 2, 1)%  q = a_(#(q − 1), 2, 1)%  q = v_(2, 1)(v_(2, 1):  fixed  value) a_(#0, 2, 2)%  q = a_(#1, 2, 2)%  q = a_(#2, 2, 2)%  q = a_(#3, 2, 2)%  q = … = a_(#g, 2, 2)%  q = … = a_(#(q − 2), 2, 2)%  q = a_(#(q − 1), 2, 2)%  q = v_(2, 2)(v_(2, 2):  fixed  value) a_(#0, 2, 3)%  q = a_(#1, 2, 3)%  q = a_(#2, 2, 3)%  q = a_(#3, 2, 3)%  q = … = a_(#g, 2, 3)%  q = … = a_(#(q − 2), 2, 3)%  q = a_(#(q − 1), 2, 3)%  q = v_(2, 3)(v_(2, 3):  fixed  value) a_(#0, 2, 4)%  q = a_(#1, 2, 4)%  q = a_(#2, 2, 4)%  q = a_(#3, 2, 4)%  q = … = a_(#g, 2, 4)%  q = … = a_(#(q − 2), 2, 4)%  q = a_(#(q − 1), 2, 4)%  q = v_(2, 4)(v_(2, 4):  fixed  value)   ⋮ a_(#0, i, 1)%  q = a_(#1, i, 1)%  q = a_(#2, i, 1)%  q = a_(#3, i, 1)%  q = … = a_(#g, i, 1)%  q = … = a_(#(q − 2), i, 1)%  q = a_(#(q − 1), i, 1)%  q = v_(i, 1)(v_(i, 1):  fixed  value) a_(#0, i, 2)%  q = a_(#1, i, 2)%  q = a_(#2, i, 2)%  q = a_(#3, i, 2)%  q = … = a_(#g, i, 2)%  q = … = a_(#(q − 2), i, 2)%  q = a_(#(q − 1), i, 2)%  q = v_(i, 2)(v_(i, 2):  fixed  value) a_(#0, i, 3)%  q = a_(#1, i, 3)%  q = a_(#2, i, 3)%  q = a_(#3, i, 3)%  q = … = a_(#g, i, 3)%  q = … = a_(#(q − 2), i, 3)%  q = a_(#(q − 1), i, 3)%  q = v_(i, 3)(v_(i, 3):  fixed  value) a_(#0, i, 4)%  q = a_(#1, i, 4)%  q = a_(#2, i, 4)%  q = a_(#3, i, 4)%  q = … = a_(#g, i, 4)%  q = … = a_(#(q − 2), i, 4)%  q = a_(#(q − 1), i, 4)%  q = v_(i, 4)(v_(i, 4):  fixed  value)   ⋮ a_(#0, n − 1, 1)%  q = a_(#1, n − 1, 1)%  q = a_(#2, n − 1, 1)%  q = a_(#3, n − 1, 1)%  q = … = a_(#g, n − 1, 1)%  q = … = a_(#(q − 2), n − 1, 1)%  q = a_(#(q − 1), n − 1, 1)%  q = v_(n − 1, 1)(v_(n − 1, 1):  fixed  value) a_(#0, n − 1, 2)%  q = a_(#1, n − 1, 2)%  q = a_(#2, n − 1, 2)%  q = a_(#3, n − 1, 2)%  q = … = a_(#g, n − 1, 2)%  q = … = a_(#(q − 2), n − 1, 2)%  q = a_(#(q − 1), n − 1, 2)%  q = v_(n − 1, 2)(v_(n − 1, 2):  fixed  value) a_(#0, n − 1, 1)%  q = a_(#1, n − 1, 3)%  q = a_(#2, n − 1, 3)%  q = a_(#3, n − 1, 3)%  q = … = a_(#g, n − 1, 3)%  q = … = a_(#(q − 2), n − 1, 3)%  q = a_(#(q − 1), n − 1, 3)%  q = v_(n − 1, 3)(v_(n − 1, 3):  fixed  value) a_(#0, n − 1, 4)%  q = a_(#1, n − 1, 4)%  q = a_(#2, n − 1, 4)%  q = a_(#3, n − 1, 4)%  q = … = a_(#g, n − 1, 4)%  q = … = a_(#(q − 2), n − 1, 4)%  q = a_(#(q − 1), n − 1, 4)%  q = v_(n − 1, 4)(v_(n − 1, 4):  fixed  value)

Note that in the above description, % means a modulo. Thus, α%q represents a remainder after dividing α by q. Condition 18-6 may be represented differently as follows.

<Condition 18-6′>

   a_(#k,1,1)%q = v_(1,1) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(1,1): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,1,1)%q = v_(1,1) (v_(1,1): fixed value) holds true for each value of k.)    a_(#k,1,2)%q = v_(1,2) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(1,2): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,1,2)%q = v_(1,2) (v_(1,2): fixed value) holds true for each value of k.)    a_(#k,1,3)%q = v_(1,3) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(1,3): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,1,3)%q = v_(1,3) (v_(1,3): fixed value) holds true for each value of k.)    a_(#k,1,4)%q = v_(1,4) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(1,4): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,1,4)%q = v_(1,4) (v_(1,4): fixed value) holds true for each value of k.)    a_(#k,2,1)%q = v_(2,1) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(2,1): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,2,1)%q = v_(2,1) (v_(2,1): fixed value) holds true for each value of k.)    a_(#k,2,2)%q = v_(2,2) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(2,2): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,2,2)%q = v_(2,2) (v_(2,2): fixed value) holds true for each value of k.)    a_(#k,2,3)%q = v_(2,3) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(2,3): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,2,3)%q = v_(2,3) (v_(2,3): fixed value) holds true for each value of k.)    a_(#k,2,4)%q = v_(2,4) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(2,4): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,2,4)%q = v_(2,4) (v_(2,4): fixed value) holds true for each value of k.)    .    .    .    a_(#k,i,1)%q = v_(i1) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(i,1): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,i,1)%q = v_(i,1) (v_(i,1): fixed value) holds true for each value of k.)    a_(#k,i,2)%q = v_(i2) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(i,2): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,i,2)%q = v_(i,2) (v_(i,2): fixed value) holds true for each value of k.)    a_(#k,i,3)%q = v_(i3) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(i,3): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,i,3)%q = v_(i,3) (v_(i,3): fixed value) holds true for each value of k.)    a_(#k,i,4)%q = v_(i4) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(i,4): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,i,4)%q = v_(i,4) (v_(i,4): fixed value) holds true for each value of k.) (i is an integer equal to or greater than 1 and equal to or smaller than n−1)    .    .    .    a_(#k,n−1,1)%q = v_(n−1,1) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(n−1,1): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,n−1,1)%q = v_(n−1,1) (v_(n−1,1): fixed value) holds true for each value of k.)    a_(#k,n−1,2)%q = v_(n−1,2) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(n−1,2): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,n−1,2)%q = v_(n−1,2) (v_(n−1,2): fixed value) holds true for each value of k.)    a_(#k,n−1,3)%q = v_(n−1,3) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(n−1,3): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,n−1,3)%q = v_(n−1,3) (v_(n−1,3): fixed value) holds true for each value of k.)    a_(#k,n−1,4)%q = v_(n−1,4) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(n−1,4): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,n−1,4)%q = v_(n−1,4) (v_(n−1,4): fixed value) holds true for each value of k.)

As is the case with Embodiments 1 and 6, high error-correction capability can be achieved when the following conditions are further satisfied.

<Condition 18-7>

   v_(1,1) ≠ v_(1,2), and v_(1,1) ≠ v_(1,3), and v_(1,1) ≠ v_(1,4), and v_(1,2) ≠ v_(1,3), and v_(1,2) ≠ v_(1,4), and v_(1,3) ≠ v_(1,4)    v_(2,1) ≠ v_(2,2), and v_(2,1) ≠ v_(2,3), and v_(2,1) ≠ v_(2,4), and v_(2,2) ≠ v_(2,3), and v_(2,2) ≠ v_(2,4), and v_(2,3) ≠ v_(2,4)    .    .    .    v_(i,1) ≠ v_(i,2), and v_(i,1) ≠ v_(i,3), and v_(i,1) ≠ v_(i,4), and v_(i,2) ≠ v_(i,3), and v_(i,2) ≠ v_(i,4), and v_(i,3) ≠ v_(i,4) (i is an integer equal to or greater than 1 and equal to or smaller than n−1)    .    .    .    v_(n−1,1) ≠ v_(n−1,2), and v_(n−1,1) ≠ v_(n−1,3), and v_(n−1,1) ≠ v_(n−1,4), and v_(n−1,2) ≠ v_(n−1,3), and v_(n−1,2) ≠ v_(n−1,4), and v_(n−1,3) ≠ v_(n−1,4)

Note that, in order to satisfy Condition 18-7, four or more time-varying periods q are necessary. (This is derived from the number of terms of X₁(D) through X_(n−1)(D) in the parity check polynomial.)

High error-correction capability can be achieved by obtaining a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, the concatenated code satisfying the above conditions. Also, high error-correction capability may be achieved when each value of r₁ through r_(n−1),is greater than 4. A description is made of this case. In this case, since each value of r₁ through r_(n−1) is equal to or greater than 5 and all column weights of the partial matrixes related to the information X₁ through X_(n−1) are equivalent, it is assumed that r₁=r₂= . . . =r_(n−2)=r_(n−1)=r. Thus, parity check polynomials satisfying zero in a feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q are provided as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 283} \right\rbrack} & \; \\ {{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 0{th}\mspace{14mu} {zero}\text{:}} & \; \\ {{{\left( {D^{{a\# \; 0},1,1} + D^{{a\# \; 0},1,2} + \ldots + D^{{a\# \; 0},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 0},2,1} + D^{{a\# \; 0},2,2} + \ldots + D^{{a\# \; 0},2,r}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; 0},{n - 1},1} + D^{{a\# \; 0},{n - 1},2} + \ldots + D^{{a\# \; 0},{n - 1},r}} \right){X_{n - 1}(D)}} + {P(D)}} = {0{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 1{st}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 283}\text{-}0} \right) \\ {{{\left( {D^{{a\# \; 1},1,1} + D^{{a\# \; 1},1,2} + \ldots + D^{{a\# \; 1},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 1},2,1} + D^{{a\# \; 1},2,2} + \ldots + D^{{a\# \; 1},2,r}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; 1},{n - 1},1} + D^{{a\# \; 1},{n - 1},2} + \ldots + D^{{a\# \; 1},{n - 1},r}} \right){X_{n - 1}(D)}} + {P(D)}} = {0{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 2{nd}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 283}\text{-}1} \right) \\ {{{\left( {D^{{a{\# 2}},1,1} + D^{{a\# \; 2},1,2} + \ldots + D^{{a\# \; 2},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 2},2,1} + D^{{a\# \; 2},2,2} + {\ldots \; D^{{a\# \; 2},2,r}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; 2},{n - 1},1} + D^{{a\# \; 2},{n - 1},2} + \ldots + D^{{a{\# 2}},{n - 1},r} +} \right){X_{n - 1}(D)}} + {P(D)}} = {0\mspace{20mu} \vdots {Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} g\text{-}{th}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 283}\text{-}2} \right) \\ {{{\left( {D^{{a\# \; g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# \; g},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; g},2,1} + D^{{a\# \; g},2,2} + \ldots + D^{{a\# g},2,r}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; g},{n - 1},1} + D^{{a\# g},{n - 1},2} + \ldots + \; D^{{a\# \; g},{n - 1},r}} \right){X_{n - 1}(D)}} + {P(D)}} = {0\mspace{20mu} \vdots {Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q\text{-}2} \right)g\text{-}{th}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 283}\text{-}g} \right) \\ {{{\left( {D^{{a\# \; {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + D^{{a\# \; {({q - 2})}},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + D^{{a\# {({q - 2})}},2,r}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# {({q - 2})}},{n - 1},1} + D^{{a\# {({q - 2})}},{n - 1},2} + \ldots + D^{{a\# \; {({q - 2})}},{n - 1},r}} \right){X_{n - 1}(D)}} + {P(D)}} = {0{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q\text{-}1} \right)g\text{-}{th}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 283}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{\left( {D^{{a\# \; {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + D^{{a\# \; {({q - 1})}},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a\# \; {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + D^{{a\# {({q - 1})}},2,r}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# {({q - 1})}},{n - 1},1} + D^{{a\# {({q - 1})}},{n - 1},2} + \ldots + D^{{a\# \; {({q - 1})}},{n - 1},r}} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{{Math}.\mspace{11mu} 283}\text{-}\left( {q\text{-}1} \right)} \right) \end{matrix}$

In this case, when descriptions of Embodiments 1 and 6 are taken into consideration, high error-correction capability can be achieved when the following conditions are satisfied.

<Condition 18-8>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1)%  q = … = a_(#g, 1, 1)%  q = … = a_(#(q − 2), 1, 1)%  q = a_(#(q − 1), 1, 1)%  q = v_(1, 1)(v_(1, 1):  fixed  value) a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)%  q = … = a_(#g, 1, 2)%  q = … = a_(#(q − 2), 1, 2)%  q = a_(#(q − 1), 1, 2)%  q = v_(1, 2)(v_(1, 2):  fixed  value) a_(#0, 1, 3)%  q = a_(#1, 1, 3)%  q = a_(#2, 1, 3)%  q = a_(#3, 1, 3)%  q = … = a_(#g, 1, 3)%  q = … = a_(#(q − 2), 1, 3)%  q = a_(#(q − 1), 1, 3)%  q = v_(1, 3)(v_(1, 3):  fixed  value)   ⋮ a_(#0, 1, r − 1)%  q = a_(#1, 1, r − 1)%  q = a_(#2, 1, r − 1)%  q = a_(#3, 1, r − 1)%  q = … = a_(#g, 1, r − 1)%  q = … = a_(#(q − 2), 1, r − 1)%  q = a_(#(q − 1), 1, r − 1)%  q = v_(1, r − 1)(v_(1, r − 1):  fixed  value) a_(#0, 1, r)%  q = a_(#1, 1, r)%  q = a_(#2, 1, r)%  q = a_(#3, 1, r)%  q = … = a_(#g, 1, r)%  q = … = a_(#(q − 2), 1, r)%  q = a_(#(q − 1), 1, r)%  q = v_(1, r)(v_(1, r):  fixed  value) a_(#0, 2, 1)%  q = a_(#1, 2, 1)%  q = a_(#2, 2, 1)%  q = a_(#3, 2, 1)%  q = … = a_(#g, 2, 1)%  q = … = a_(#(q − 2), 2, 1)%  q = a_(#(q − 1), 2, 1)%  q = v_(2, 1)(v_(2, 1):  fixed  value) a_(#0, 2, 2)%  q = a_(#1, 2, 2)%  q = a_(#2, 2, 2)%  q = a_(#3, 2, 2)%  q = … = a_(#g, 2, 2)%  q = … = a_(#(q − 2), 2, 2)%  q = a_(#(q − 1), 2, 2)%  q = v_(2, 2)(v_(2, 2):  fixed  value) a_(#0, 2, 3)%  q = a_(#1, 2, 3)%  q = a_(#2, 2, 3)%  q = a_(#3, 2, 3)%  q = … = a_(#g, 2, 3)%  q = … = a_(#(q − 2), 2, 3)%  q = a_(#(q − 1), 2, 3)%  q = v_(2, 3)(v_(2, 3):  fixed  value)   ⋮ a_(#0, 2, r − 1)%  q = a_(#1, 2, r − 1)%  q = a_(#2, 2, r − 1)%  q = a_(#3, 2, r − 1)%  q = … = a_(#g, 2, r − 1)%  q = … = a_(#(q − 2), 2, r − 1)%  q = a_(#(q − 1), 2, r − 1)%  q = v_(2, r − 1)(v_(2, r − 1):  fixed  value) a_(#0, 2, r)%  q = a_(#1, 2, r)%  q = a_(#2, 2, r)%  q = a_(#3, 2, r)%  q = … = a_(#g, 2, r)%  q = … = a_(#(q − 2), 2, r)%  q = a_(#(q − 1), 2, r)%  q = v_(2, r)(v_(2, r):  fixed  value)   ⋮ a_(#0, i, 1)%  q = a_(#1, i, 1)%  q = a_(#2, i, 1)%  q = a_(#3, i, 1)%  q = … = a_(#g, i, 1)%  q = … = a_(#(q − 2), i, 1)%  q = a_(#(q − 1), i, 1)%  q = v_(i, 1)(v_(i, 1):  fixed  value) a_(#0, i, 2)%  q = a_(#1, i, 2)%  q = a_(#2, i, 2)%  q = a_(#3, i, 2)%  q = … = a_(#g, i, 2)%  q = … = a_(#(q − 2), i, 2)%  q = a_(#(q − 1), i, 2)%  q = v_(i, 2)(v_(i, 2):  fixed  value) a_(#0, i, 3)%  q = a_(#1, i, 3)%  q = a_(#2, i, 3)%  q = a_(#3, i, 3)%  q = … = a_(#g, i, 3)%  q = … = a_(#(q − 2), i, 3)%  q = a_(#(q − 1), i, 3)%  q = v_(i, 3)(v_(i, 3):  fixed  value)   ⋮ a_(#0, i, r − 1)%  q = a_(#1, i, r − 1)%  q = a_(#2, i, r − 1)%  q = a_(#3, i, r − 1)%  q = … = a_(#g, i, r − 1)%  q = … = a_(#(q − 2), i, r − 1)%  q = a_(#(q − 1), i, r − 1)%  q = v_(i, r − 1)(v_(i, r − 1):  fixed  value) a_(#0, i, r)%  q = a_(#1, i, r)%  q = a_(#2, i, r)%  q = a_(#3, i, r)%  q = … = a_(#g, i, r)%  q = … = a_(#(q − 2), i, r)%  q = a_(#(q − 1), i, r)%  q = v_(i, r)(v_(i, r):  fixed  value)   ⋮ a_(#0, n − 1, 1)%  q = a_(#1, n − 1, 1)%  q = a_(#2, n − 1, 1)%  q = a_(#3, n − 1, 1)%  q = … = a_(#g, n − 1, 1)%  q = … = a_(#(q − 2), n − 1, 1)%  q = a_(#(q − 1), n − 1, 1)%  q = v_(n − 1, 1)(v_(n − 1, 1):  fixed  value) a_(#0, n − 1, 2)%  q = a_(#1, n − 1, 2)%  q = a_(#2, n − 1, 2)%  q = a_(#3, n − 1, 2)%  q = … = a_(#g, n − 1, 2)%  q = … = a_(#(q − 2), n − 1, 2)%  q = a_(#(q − 1), n − 1, 2)%  q = v_(n − 1, 2)(v_(n − 1, 2):  fixed  value) a_(#0, n − 1, 3)%  q = a_(#1, n − 1, 3)%  q = a_(#2, n − 1, 3)%  q = a_(#3, n − 1, 3)%  q = … = a_(#g, n − 1, 3)%  q = … = a_(#(q − 2), n − 1, 3)%  q = a_(#(q − 1), n − 1, 3)%  q = v_(n − 1, 3)(v_(n − 1, 3):  fixed  value)   ⋮ a_(#0, n − 1, r − 1)%  q = a_(#1, n − 1, r − 1)%  q = a_(#2, n − 1, r − 1)%  q = a_(#3, n − 1, r − 1)%  q = … = a_(#g, n − 1, r − 1)%  q = … = a_(#(q − 2), n − 1, r − 1)%  q = a_(#(q − 1), n − 1, r − 1)%  q = v_(n − 1, r − 1)(v_(n − 1, r − 1):  fixed  value) a_(#0, n − 1, r)%  q = a_(#1, n − 1, r)%  q = a_(#2, n − 1, r)%  q = a_(#3, n − 1, r)%  q = … = a_(#g, n − 1, r)%  q = … = a_(#(q − 2), n − 1, r)%  q = a_(#(q − 1), n − 1, r)%  q = v_(n − 1, r)(v_(n − 1, r):  fixed  value)

Note that in the above description, % means a modulo. Thus, α%q represents a remainder after dividing α by q. Condition 18-8 may be represented differently as follows. Note that j is an integer equal to or greater than 1 and equal to or smaller than r.

<Condition 18-8′>

   a_(#k,1,j)%q = v_(1,j) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(1,j): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,1,j)%q = v_(i,j) (v_(1,j): fixed value) holds true for each value of k.)    a_(#k,2,j)%q = v_(2,j) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(2,j): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,2,j)%q = v_(2,j) (v_(2,j): fixed value) holds true for each value of k.)    .    .    .    a_(#k,i,j)%q = v_(i,j) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(ij): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,i,j)%q = v_(ij) (v_(ij): fixed value) holds true for each value of k.) (i is an integer equal to or greater than 1 and equal to or smaller than n−1)    .    .    .    a_(#k,n−1,j)%q = v_(n−i,j) for ∀k k = 0, 1, 2, . . . , q−3, q−2, q−1 (v_(n−1,j): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,n−1,j)%q = v_(n−1,j) (v_(n−1,j): fixed value) holds true for each value of k.)

As is the case with Embodiments 1 and 6, high error-correction capability can be achieved when the following conditions are further satisfied.

<Condition 18-9>

i is an integer equal to or greater than 1 and equal to or smaller than r, and j is an integer equal to or greater than 1 and equal to or smaller than r, and v_(s,i)≠v_(s,j) holds true for all values of i and all values of j that satisfy i≠j.

Note that s is an integer equal to or greater than 1 and equal to or smaller than n−1. In order to satisfy Condition 18-9, r or more time-varying periods q are necessary. (This is derived from the number of terms of X₁(D) through X_(n−1)(D) in the parity check polynomial.)

High error-correction capability can be achieved by obtaining a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, the concatenated code satisfying the above conditions.

Next, a description is given of a code generating method for a parity check matrix for a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, when the partial matrixes related to the information X₁ through X_(n−1) are irregular, namely an irregular LDPC code generating method as shown in Non-Patent Literature 36.

As described above, in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, which is used in a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, the g-th (g=0, 1, . . . , q−1) parity check polynomial (see Math. 128) satisfying zero is represented as shown in Math. 284.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 284} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + {D^{{a\# g},1}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + {D^{{a\# g},2,}r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + \ldots + {D^{{a\# g},{n - 1},}r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{11mu} 284} \right) \end{matrix}$

In Math. 284, it is assumed that a_(#g,p,q) (p=1, 2, . . . , n−1; q=1, 2, . . . , r_(p)) is a natural number. It is also assumed that a_(#g,p,y)≠a_(#g,p,z) is satisfied for y, z=1, 2, . . . , r_(p), ^(∀)(y, z), wherein y≠z. Here, by setting each of r₁, r₂, . . . , r_(n−2), r_(n−1) to three or greater, high error-correction capability can be achieved.

Next, a description is given of conditions for achieving high error-correction capability in Math. 284 when each of r₁, r₂, . . . , r_(n−2), r_(n−1) is set to 3 or greater.

When each of r₁, r₂, . . . , r_(n−2), r_(n−1) is set to 3 or greater, parity check polynomials satisfying zero in a feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q are provided as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 285} \right\rbrack} & \; \\ {{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 0{th}\mspace{14mu} {zero}\text{:}} & \; \\ {{{\left( {D^{{a\# \; 0},1,1} + D^{{a\# \; 0},1,2} + \ldots + {D^{{a\# \; 0},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 0},2,1} + D^{{a\# \; 0},2,2} + \ldots + {D^{{a\# \; 0},2,}r_{1}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; 0},{n - 1},1} + D^{{a\# \; 0},{n - 1},2} + \ldots + {D^{{a\# \; 0},{n - 1},}r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = {0{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 1{st}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 285}\text{-}0} \right) \\ {{{{\left( {D^{{a\# \; 1},1,1} + D^{{a\# \; 1},1,2} + \ldots + {D^{{a\# \; 1},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 1},2,1} + D^{{a\# \; 1},2,2} + \ldots + {D^{{a\# \; 1},2,}r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; 1},{n - 1},1} + D^{{a\# \; 1},{n - 1},2} + \ldots + {D^{{a\# \; 1},{n - 1},}r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0}{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 2{nd}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 285}\text{-}1} \right) \\ {{{{\left( {D^{{a\# \; 2},1,1} + D^{{a\# \; 2},1,2} + \ldots + {D^{{a{\# 2}},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; 2},2,1} + D^{{a\# \; 2},2,2} + \ldots + {D^{{a\# \; 2},2,}r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a{\# 2}},{n - 1},1} + D^{{a{\# 2}},{n - 1},2} + \ldots + {D^{{a\# \; 2},{n - 1},}r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0}\mspace{20mu} \vdots {{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} g\text{-}{th}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 285}\text{-}2} \right) \\ {{{\left( {D^{{a\# \; g},1,1} + D^{{a\# g},1,2} + \ldots + {D^{{a\# \; g},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; g},2,1} + D^{{a\# \; g},2,2} + \ldots + {D^{{a\# g},2,}r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# \; g},{n - 1},1} + D^{{a\# g},{n - 1},2} + \ldots + \; {D^{{a\# \; g},{n - 1},}r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = {0\mspace{20mu} \vdots {Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q\text{-}2} \right)g\text{-}{th}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 285}\text{-}g} \right) \\ {{{\left( {D^{{a\# \; {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + {D^{{a\# \; {({q - 2})}},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + {D^{{a\# {({q - 2})}},2,}r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# {({q - 2})}},{n - 1},1} + D^{{a\# {({q - 2})}},{n - 1},2} + \ldots + {D^{{a\# \; {({q - 2})}},{n - 1},}r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = {0{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q\text{-}1} \right)g\text{-}{th}\mspace{14mu} {zero}\text{:}}} & \left( {{{Math}.\mspace{11mu} 285}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{\left( {D^{{a\# \; {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + {D^{{a\# \; {({q - 1})}},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# \; {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + {D^{{a\# {({q - 1})}},2,}r_{2}} + 1} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# {({q - 1})}},{n - 1},1} + D^{{a\# {({q - 1})}},{n - 1},2} + \ldots + {D^{{a\# \; {({q - 1})}},{n - 1},}r_{n - 1}} + 1} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{{Math}.\mspace{11mu} 285}\text{-}\left( {q\text{-}1} \right)} \right) \end{matrix}$

In this case, in partial matrixes related to information X₁, high error-correction capability can be achieved when the following conditions are satisfied to set the minimum column weighting to 3. Note that, for a column a in a parity check matrix, the number of 1 s included in elements of a vector generated by extracting the column α is the column weight of the column α.

<Condition 18-10-1>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1)%  q = … = a_(#g, 1, 1)%  q = … = a_(#(q − 2), 1, 1)%  q = a_(#(q − 1), 1, 1)%  q = v_(1, 1)(v_(1, 1):  fixed  value) a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)%  q = … = a_(#g, 1, 2)%  q = … = a_(#(q − 2), 1, 2)%  q = a_(#(q − 1), 1, 2)%  q = v_(1, 2)(v_(1, 2):  fixed  value)

Similarly, in partial matrixes related to information X₂, high error-correction capability can be achieved when the following conditions are satisfied to set the minimum column weighting to 3.

<Condition 18-10-2>

a_(#0, 2, 1)%  q = a_(#1, 2, 1)%  q = a_(#2, 2, 1)%  q = a_(#3, 2, 1)%  q = … = a_(#g, 2, 1)%  q = … = a_(#(q − 2), 2, 1)%  q = a_(#(q − 1), 2, 1)%  q = v_(2, 1)(v_(2, 1):  fixed  value) a_(#0, 2, 2)%  q = a_(#1, 2, 2)%  q = a_(#2, 2, 2)%  q = a_(#3, 2, 2)%  q = … = a_(#g, 2, 2)%  q = … = a_(#(q − 2), 2, 2)%  q = a_(#(q − 1), 2, 2)%  q = v_(2, 2)(v_(2, 2):  fixed  value)

Similarly, in partial matrixes related to information X_(i), high error-correction capability can be achieved when the following conditions are satisfied to set the minimum column weighting to 3. (i is an integer equal to or greater than 1 and equal to or smaller than n−1)

<Condition 18-10-i>

a_(#0, i, 1)%  q = a_(#1, i, 1)%  q = a_(#2, i, 1)%  q = a_(#3, i, 1)%  q = … = a_(#g, i, 1)%  q = … = a_(#(q − 2), i, 1)%  q = a_(#(q − 1), i, 1)%  q = v_(i, 1)(v_(i, 1):  fixed  value) a_(#0, i, 2)%  q = a_(#1, i, 2)%  q = a_(#2, i, 2)%  q = a_(#3, i, 2)%  q = … = a_(#g, i, 2)%  q = … = a_(#(q − 2), i, 2)%  q = a_(#(q − 1), i, 2)%  q = v_(i, 2)(v_(i, 2):  fixed  value)   ⋮

Similarly, in partial matrixes related to information X_(n−1), high error-correction capability can be achieved when the following conditions are satisfied to set the minimum column weighting to 3.

<Condition 18-10-(n−1)>

a_(#0, n − 1, 1)%  q = a_(#1, n − 1, 1)%  q = a_(#2, n − 1, 1)%  q = a_(#3, n − 1, 1)%  q = … = a_(#g, n − 1, 1)%  q = … = a_(#(q − 2), n − 1, 1)%  q = a_(#(q − 1), n − 1, 1)%  q = v_(n − 1, 1)(v_(n − 1, 1):  fixed  value) a_(#0, n − 1, 2)%  q = a_(#1, n − 1, 2)%  q = a_(#2, n − 1, 2)%  q = a_(#3, n − 1, 2)%  q = … = a_(#g, n − 1, 2)%  q = … = a_(#(q − 2), n − 1, 2)%  q = a_(#(q − 1), n − 1, 2)%  q = v_(n − 1, 2)(v_(n − 1, 2):  fixed  value)

Note that in the above description, % means a modulo. Thus, α%q represents a remainder after dividing α by q. Condition 18-10-(n−1) may be represented differently based on Condition 18-10-1 as follows. Note that j is one or two.

<Condition 18-10′-1>

a_(#k,1,j)%q=v_(1,j) for ∀k k=0, 1, 2, . . . , q−3, q−2, q−1 (v_(1,j): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,1,j)%q=v₁ j (v₁ j: fixed value) holds true for each value of k.)

<Condition 18-10′-2>

a_(#k,2,j)%q=v_(2,j) for ∀k k=0, 1, 2, . . . , q−3, q−2, q−1 (v_(2,j): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,2,j)%q=v_(2,j) (v_(2,j): fixed value) holds true for each value of k.)

<Condition 18-10′-i>

a_(#k,i,j)%q=v_(i,j) for ∀k k=0, 1, 2, . . . , q−3, q−2, q−1 (v_(i,j): fixed value) (k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,i,j)%q=v_(i,j) (v_(i,j): fixed value) holds true for each value of k.) (i is an integer equal to or greater than 1 and equal to or smaller than n−1)

<Condition 18-10′-(n−1)>

a_(#k,n−1,j)%q=v_(n−1,j) for ∀k k=0, 1, 2, . . . , q−3, q−2, q−1 (v_(n−1,j): fixed value) (In this expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,n−1,j)%q=v_(n−1,j) (v_(n−1,j): fixed value) holds true for each value of k.)

As is the case with Embodiments 1 and 6, high error-correction capability can be achieved when the following conditions are further satisfied.

v _(1,1)≠0, and v _(1,2)≠0.

and

v _(1,1) ≠v _(1,2).  <Condition 18-11-1>

v _(2,1)≠0, and v _(2,2)≠0.

and

v _(2,1) ≠v _(2,2)≠0.  <Condition 18-11-2>

v _(i,1)≠0, and v _(i,2)≠0.

and

v _(i,1) ≠v _(i,2). (i is an integer equal to or greater than 1 and equal to or smaller than n−1)  <Condition 18-11-i>

v _(n−1,1)=0, and v _(n−1,2)≠0.

and

v _(n−1,1) ≠v _(n−1,2.)  <Condition 18-11-(n−1)>

Here, since the condition the partial matrixes related to the information X₁ through X_(n−1) are irregular needs to be satisfied, the following conditions are satisfied.

a _(#i,1,v)%q=a _(#j,1,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-12-1>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and a_(#i,1,v)%q=a_(#j,1,v)%q holds true for all values of i and all values of j that satisfy these conditions.). Condition #Xa-1

Also, v is an integer equal to or greater than 3 and equal to or smaller than r₁, and Condition #Xa-1 is not satisfied for all values of v.

a _(#i,2,v)%q=a _(#j,2,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-12-2>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and a_(#i,2,v)%q=a_(#j,2,v)%q holds true for all values of i and all values of j that satisfy these conditions.). Condition #Xa-2

Also, v is an integer equal to or greater than 3 and equal to or smaller than r₂, and Condition #Xa-2 is not satisfied for all values of v.

a _(#i,k,v)%q=a _(#j,k,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-12-k>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and a_(#i,k,v)%q=a_(#j,k,v)%q holds true for all values of i and all values of j that satisfy these conditions.). Condition #Xa-k

Also, v is an integer equal to or greater than 3 and equal to or smaller than r_(k), and Condition #Xa-k is not satisfied for all values of v. (k is an integer equal to or greater than 1 and equal to or smaller than n−1)

a _(#i,n−1,v)%q=a _(#j,n−1,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-12-(n−1)>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and a_(#i,n−1,v)%q=a_(#j,n−1,v)%q holds true in each value of i and j that satisfies these conditions.). Condition #Xa-(n−1)

Also, v is an integer equal to or greater than 3 and equal to or smaller than r_(n−1), and Condition Xa-(n−1) is not satisfied for all values of v. Note that Condition 18-12-(n−1) may be represented differently based on Condition 18-12-1 as follows.

a _(#i,1,v)%q≠a _(#j,1,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-12′-1>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and there are values of i and j for which a_(#i,1,v)%q a_(#j,1,v)%q holds true.). Condition #Ya-1

Also, v is an integer equal to or greater than 3 and equal to or smaller than r₁, and Condition #Ya-1 is satisfied for each value of v.

a _(#i,2,v)%q≠a _(#j,2,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-12′-2>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and there are values of i and j for which a_(#i,2,v)%q f a_(#j,2,v)%q holds true.). Condition #Ya-2

Also, v is an integer equal to or greater than 3 and equal to or smaller than r₂, and Condition #Ya-2 is satisfied for each value of v.

a _(#i,k,v)%q≠a _(#j,k,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-12′-k>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and there are values of i and j for which a_(#i,k,v)%q≠a_(#j,k,v)%q holds true.). Condition #Ya-k

Also, v is an integer equal to or greater than 3 and equal to or smaller than r_(k), and Condition #Ya-k is satisfied for each value of v. (k is an integer equal to or greater than 1 and equal to or smaller than n−1)

a _(#i,n−1,v)%q≠a _(#j,n−1,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-12′-(n−1)>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and there are values of i and j for which a_(#i,n−1,v)%q≠a_(#j,n−1,v)%q holds true.). Condition #Ya-(n−1)

Also, v is an integer equal to or greater than 3 and equal to or smaller than r_(n−1), and Condition #Ya-(n−1) is satisfied for each value of v. The above structure makes it possible to satisfy the condition the minimum column weighting is set to 3 in each partial matrix related to information X₁, X₂, . . . , X_(n−1) in a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, resulting in generation of the irregular LDPC code, making it possible to achieve high error-correction capability. Note that, in order to obtain easily the above concatenated code having high error-correction capability, it may be set that r₁=r₂ . . . =r_(n−2)=r_(n−1)=r (r is equal to or greater than 3) when generating a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n having high error-correction capability, based on the above conditions. Next, in the feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q, which is used in a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, the g-th (g=0, 1, . . . , q−1) parity check polynomial (see Math. 128) satisfying zero is represented as shown in the following mathematical expression.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 286} \right\rbrack & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\#},2,2} + \ldots + D^{{a\# g},2,_{r_{2}}}} \right){X_{2}(D)}} + \ldots + {\left( {D^{{a\# g},{n - 1},1} + D^{{a\#},g,{n - 1},2} + \ldots + D^{{a\# g},{n - 1},_{r_{n - 1}}}} \right){X_{n - 1}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 286} \right) \end{matrix}$

In Math. 286, it is assumed that a_(#g,p,q) (p=1, 2, . . . , n−1; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. It is also assumed that a_(#g,p,y)≠a_(#g),p,z is satisfied for y, z=1, 2, . . . , r_(p), ^(∀)(y, z), wherein y≠z. Next, a description is given of conditions for achieving high error-correction capability in Math. 286 when each of r₁, r₂, . . . , r_(n−2), r_(n−1) is set to 4 or greater. When each of r₁, r₂, . . . , r_(n−2), r_(n−1) is set to 4 or greater, parity check polynomials satisfying zero in a feedforward periodic LDPC convolutional code that is based on a parity check polynomial having a time-varying period of q are provided as follows.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 287} \right\rbrack & \; \\ {{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 0\; {th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,_{r_{2}}}} \right){X_{2}(D)}} + \ldots + {\left( {{D^{{a{\# 0}},{n - 1},1} + D^{{a{\# 0}},{n - 1},2} + \ldots + D^{{a{\# 0}},{n - 1}}},r_{n - 1}} \right){X_{n - 1}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 287}\text{-}0} \right) \\ {{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 1\; {th}\mspace{14mu} {zero}\text{:}}\text{}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,_{r_{2}}}} \right){X_{2}(D)}} + \ldots + {\left( {{D^{{a{\# 1}},{n - 1},1} + D^{{a{\# 1}},{n - 1},2} + \ldots + D^{{a{\# 1}},{n - 1}}},r_{n - 1}} \right){X_{n - 1}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 287}\text{-}1} \right) \\ {{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 2\; {nd}\mspace{14mu} {zero}\text{:}}\text{}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,_{r_{2}}}} \right){X_{2}(D)}} + \ldots + {\left( {{D^{{a{\# 2}},{n - 1},1} + D^{{a{\# 2}},{n - 1},2} + \ldots + D^{{a{\# 2}},{n - 1}}},r_{n - 1}} \right){X_{n - 1}(D)}} + {P(D)}} = 0}\mspace{225mu} \vdots} & \left( {{{Math}.\mspace{14mu} 287}\text{-}2} \right) \\ {{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} g\text{-}{th}\mspace{14mu} {zero}\text{:}}\text{}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,_{r_{2}}}} \right){X_{2}(D)}} + \ldots + {\left( {{D^{{a\# g},{n - 1},1} + D^{{a\# g},{n - 1},2} + \ldots + D^{{a\# g},{n - 1}}},r_{n - 1}} \right){X_{n - 1}(D)}} + {P(D)}} = 0}\mspace{225mu} \vdots} & \left( {{{Math}.\mspace{14mu} 287}\text{-}g} \right) \\ {{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q - 2} \right){th}\mspace{14mu} {zero}\text{:}}\text{}{{{\left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + D^{{a\# {({q - 2})}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + D^{{a{({q - 2})}},2,_{r_{2}}}} \right){X_{2}(D)}} + \ldots + {\left( {{D^{{a\# {({q - 2})}},{n - 1},1} + D^{{a\# {({q - 2})}},{n - 1},2} + \ldots + D^{{a\# {({q - 2})}},{n - 1}}},r_{n - 1}} \right){X_{n - 1}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 287} - \left( {q\text{-}2} \right)} \right) \\ {{{Parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q - 1} \right){th}\mspace{14mu} {zero}\text{:}}\text{}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + D^{{a\# {({q - 1})}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + D^{{a\# {({q - 1})}},2,_{r_{2}}}} \right){X_{2}(D)}} + \ldots + {\left( {{D^{{a\# {({q - 1})}},{n - 1},1} + D^{{a\# {({q - 1})}},{n - 1},2} + \ldots + D^{{a\# {({q - 1})}},{n - 1}}},r_{n - 1}} \right){X_{n - 1}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 287}\text{-}\left( {q\text{-}1} \right)} \right) \end{matrix}$

In this case, in partial matrixes related to information X₁, high error-correction capability can be achieved when the following conditions are satisfied to set the minimum column weighting to 3.

<Condition 18-13-1>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1)%  q = … = a_(#g, 1, 1)%  q = … = a_(#(q − 2), 1, 1)%  q = a_(#(q − 1), 1, 1)%  q = v_(1, 1)(v_(1, 1):  fixed  value) a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)%  q = … = a_(#g, 1, 2)%  q = … = a_(#(q − 2), 1, 2)%  q = a_(#(q − 1), 1, 2)%  q = v_(1, 2)(v_(1, 2):  fixed  value) a_(#0, 1, 3)%  q = a_(#1, 1, 3)%  q = a_(#2, 1, 3)%  q = a_(#3, 1, 3)%  q = … = a_(#g, 1, 3)%  q = … = a_(#(q − 2), 1, 3)%  q = a_(#(q − 1), 1, 3)%  q = v_(1, 3)(v_(1, 3):  fixed  value)

In this case, in partial matrixes related to information X₂, high error-correction capability can be achieved when the following conditions are satisfied to set the minimum column weighting to 3.

<Condition 18-13-2>

a_(#0, 2, 1)%  q = a_(#1, 2, 1)%  q = a_(#2, 2, 1)%  q = a_(#3, 2, 1)%  q = … = a_(#g, 2, 1)%  q = … = a_(#(q − 2), 2, 1)%  q = a_(#(q − 1), 2, 1)%  q = v_(2, 1)(v_(2, 1):  fixed  value) a_(#0, 2, 2)%  q = a_(#1, 2, 2)%  q = a_(#2, 2, 2)%  q = a_(#3, 2, 2)%  q = … = a_(#g, 2, 2)%  q = … = a_(#(q − 2), 2, 2)%  q = a_(#(q − 1), 2, 2)%  q = v_(2, 2)(v_(2, 2):  fixed  value) a_(#0, 2, 3)%  q = a_(#1, 2, 3)%  q = a_(#2, 2, 3)%  q = a_(#3, 2, 3)%  q = … = a_(#g, 2, 3)%  q = … = a_(#(q − 2), 2, 3)%  q = a_(#(q − 1), 2, 3)%  q = v_(2, 3)(v_(2, 3):  fixed  value)   ⋮

Similarly, in partial matrixes related to information X₁, high error-correction capability can be achieved when the following conditions are satisfied to set the minimum column weighting to 3. (i is an integer equal to or greater than 1 and equal to or smaller than n−1)

<Condition 18-13-i>

a_(#0, i, 1)%  q = a_(#1, i, 1)%  q = a_(#2, i, 1)%  q = a_(#3, i, 1)%  q = … = a_(#g, i, 1)%  q = … = a_(#(q − 2), i, 1)%  q = a_(#(q − 1), i, 1)%  q = v_(i, 1)(v_(i, 1):  fixed  value) a_(#0, i, 2)%  q = a_(#1, i, 2)%  q = a_(#2, i, 2)%  q = a_(#3, i, 2)%  q = … = a_(#g, i, 2)%  q = … = a_(#(q − 2), i, 2)%  q = a_(#(q − 1), i, 2)%  q = v_(i, 2)(v_(i, 2):  fixed  value) a_(#0, i, 3)%  q = a_(#1, i, 3)%  q = a_(#2, i, 3)%  q = a_(#3, i, 3)%  q = … = a_(#g, i, 3)%  q = … = a_(#(q − 2), i, 3)%  q = a_(#(q − 1), i, 3)%  q = v_(i, 3)(v_(i, 3):  fixed  value)   ⋮

Similarly, in partial matrixes related to information X_(n−1), high error-correction capability can be achieved when the following conditions are satisfied to set the minimum column weighting to 3.

<Condition 18-13-(n−1)>

a_(#0, n − 1, 1)%  q = a_(#1, n − 1, 1)%  q = a_(#2, n − 1, 1)%  q = a_(#3, n − 1, 1)%  q = … = a_(#g, n − 1, 1)%  q = … = a_(#(q − 2), n − 1, 1)%  q = a_(#(q − 1), n − 1, 1)%  q = v_(n − 1, 1)(v_(n − 1, 1):  fixed  value) a_(#0, n − 1, 2)%  q = a_(#1, n − 1, 2)%  q = a_(#2, n − 1, 2)%  q = a_(#3, n − 1, 2)%  q = … = a_(#g, n − 1, 2)%  q = … = a_(#(q − 2), n − 1, 2)%  q = a_(#(q − 1), n − 1, 2)%  q = v_(n − 1, 2)(v_(n − 1, 2):  fixed  value) a_(#0, n − 1, 3)%  q = a_(#1, n − 1, 3)%  q = a_(#2, n − 1, 3)%  q = a_(#3, n − 1, 3)%  q = … = a_(#g, n − 1, 3)%  q = … = a_(#(q − 2), n − 1, 3)%  q = a_(#(q − 1), n − 1, 3)%  q = v_(n − 1, 3)(v_(n − 1, 3):  fixed  value)

Note that in the above description, % means a modulo. Thus, α%q represents a remainder after dividing α by q. Condition 18-13-(n−1) may be represented differently based on Condition 18-13-1 as follows. Note that j is one, two or three.

a _(#k,1,j)%q=v _(1,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−2 (v _(2,j): fixed value)  <Condition 18-13′-1>

(In the above expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,1,j)%q=v_(1,j) (v_(1,j): fixed value) holds true for each value of k.)

a _(#k,2,j)%q=v _(2,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−2 (v _(2,j): fixed value)  <Condition 18-13′-2>

(In the above expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,2,j)%q=v_(2,j) (v_(2,j): fixed value) holds true for each value of k.)

a _(#k,i,j)%q=v _(i,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−2 (v _(i,j): fixed value)  <Condition 18-13′-i>

(In the above expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,i,j)%q=v_(i,j)(v_(i,j): fixed value) holds true for each value of k.) (i is an integer equal to or greater than 1 and equal to or smaller than n−1)

a _(#k,n−1,j)%q=v _(n−1,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−2 (v _(n−1,j): fixed value)  <Condition 18-13′-(n−1)>

(In the above expression, k is an integer equal to or greater than 0 and equal to or smaller than q−1, and a_(#k,n−1,j)%q=v_(n−1,j) (v_(n−1,j): fixed value) holds true in each k.)

As is the case with Embodiments 1 and 6, high error-correction capability can be achieved when the following conditions are further satisfied.

v _(1,1) ≠v _(1,2) , v _(1,1) ≠v _(1,3) , v _(1,2) ≠v _(1,3) holds true.  <Condition 18-14-1>

v _(2,1) ≠v _(2,2) , v _(2,1) ≠v _(2,3) , v _(2,2) ≠v _(2,3) holds true.  <Condition 18-14-2>

v _(i,1) ≠v _(i,2) , v _(i,1) ≠v _(i,3) , v _(i,2) ≠v _(i,3) holds true.  <Condition 18-14-i>

(i is an integer equal to or greater than 1 and equal to or smaller than n−1)

v _(n−1,1) ≠v _(n−1,2) , v _(n−1,1) ≠v _(n−1,3) , v _(n−1,2) ≠v _(n−1,3) holds true.  <Condition 18-14-(n−1)>

Here, since the condition the partial matrixes related to the information X₁ through X_(n−1) are irregular needs to be satisfied, the following conditions are satisfied.

a _(#i,1,v)%q=a _(#j,1,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-15-1>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i t j, and a_(#i,1,v)%q=a_(#j,1,v)%q holds true for all values of i and all values of j that satisfy these conditions.). Condition #Yb-1

Also, v is an integer equal to or greater than 4 and equal to or smaller than r₁, and Condition #Xb-1 is not satisfied for all values of v.

a _(#i,2,v)%q=a _(#j,2,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-15-2>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and a_(#i,2,v)%q=a_(#j,2,v)%q holds true for all values of i and all values of j that satisfy these conditions.). Condition #Xb-2

Also, v is an integer equal to or greater than 4 and equal to or smaller than r₂, and Condition #Xb-2 is not satisfied for all values of v.

a _(#i,k,v)%q=a _(#j,k,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-15-k>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i s j, and a_(#i,k,v)%q=a_(#j,k,v)%q holds true for all values of i and all values of j that satisfy these conditions.). Condition #Xb-k

Also, v is an integer equal to or greater than 4 and equal to or smaller than r_(k), and Condition #Xb-k is not satisfied for all values of v. (k is an integer equal to or greater than 1 and equal to or smaller than n−1)

a _(#i,n−1,v)%q=a _(#j,n−1,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-15-(n−1)>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i s j, and a_(#i,n−1,v)%q=a_(#i,n−1,v)%q holds true for all values of i and all values of j that satisfy these conditions.). Condition #Xb-(n−1)

Also, v is an integer equal to or greater than 4 and equal to or smaller than r_(n−1), and Condition #Xb-(n−1) is not satisfied for all values of v. Condition 18-15-(n−1) may be represented differently based on Condition 18-15-1 as follows.

a _(#i,1,v)%q≠a _(#j,1,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-15′-1>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and there are values of i and j for which a_(#i,1,v)%q a_(#j,1,v)%q holds true.). Condition #Yb-1

Also, v is an integer equal to or greater than 4 and equal to or smaller than r₁, and Condition #Yb-1 is satisfied for each value of v.

a _(#i,2,v)%q≠a _(#j,2,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-15′-2>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and there are values of i and j for which a_(#i,2,v)%q≠a_(#j,2,v)%q holds true.). Condition #Yb-2

Also, v is an integer equal to or greater than 4 and equal to or smaller than r₂, and Condition #Yb-2 is satisfied for each value of v.

a _(#i,k,v)%q≠a _(#j,k,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-15′-k>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and there are values of i and j for which a_(#i,k,v)%q≠a_(#j,k,v)%q holds true.). Condition #Yb-k

Also, v is an integer equal to or greater than 4 and equal to or smaller than r_(k), and Condition #Yb-k is satisfied for each value of v. (k is an integer equal to or greater than 1 and equal to or smaller than n−1)

a _(#i,n−1,v)%q≠a _(#j,n−1,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-15′-(n−1)>

(In the above expression, i is an integer equal to or greater than 0 and equal to or smaller than q−1, and j is an integer equal to or greater than 0 and equal to or smaller than q−1, and i≠j, and there are values of i and j for which a_(#i,n−1,v)%q a_(#j,n−1,v)%q holds true.). Condition #Yb-(n−1)

Also, v is an integer equal to or greater than 4 and equal to or smaller than r_(n−1), and Condition #Yb-(n−1) is satisfied for each value of v. The above structure makes it possible to satisfy the condition the minimum column weighting is set to 3 in each partial matrix related to information X₁, X₂, . . . , X_(n−1) in a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, resulting in generation of the irregular LDPC code, making it possible to achieve high error-correction capability. Note that, in order to obtain the above concatenated code having high error-correction capability easily, it may be set that r₁=r₂ . . . =r_(n−2)=r_(n−1)=r (r is equal to or greater than 4) when generating a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n having high error-correction capability, based on the above conditions.

Note that the concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, which is described in the present embodiment, and any code generated by using any code generating method described in the present embodiment can be decoded by performing the belief propagation decoding such as BP decoding, sum-product decoding, min-sum decoding, offset BP decoding, shuffled BP decoding, or layered BP decoding with scheduling, as shown in Non-Patent Literatures 4 through 6, based on the parity check matrix generated by the parity check matrix described in the present embodiment with reference to FIG. 108. This produces an effect that high-speed decoding is realized and high error-correction capability is achieved.

As described above, implementation of the generation method, encoder, structure of parity check matrix, decoding method, etc. for the concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n produces the effect that high error-correction capability can be achieved by applying a decoding method using a belief propagation algorithm that can realize a high-speed decoding. Note that the requirements described in the present embodiment are merely examples, and other methods can be used to generate error correction codes that can achieve high error-correction capability.

The following show examples of values of the period (time-varying period) of the feedforward periodic LDPC convolutional code that is based on a parity check polynomial, which is used in a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, based on Embodiment 6.

(1) The time-varying period q is a prime number.

(2) The time-varying period q is an odd number and the number of divisors of q is small.

(3) The time-varying period q is assumed to be α×β,

where α and β are odd numbers other than one and are prime numbers.

(4) The time-varying period of q is assumed to be α^(n),

where α is an odd number other than one and is a prime number, and n is an integer equal to or greater than two.

(5) The time-varying period q is assumed to be α×β×γ,

where α, β and γ are odd numbers other than one and are prime numbers.

(6) The time-varying period q is assumed to be α×β×γ×δ,

where α, β, γ and δ are odd numbers other than one and are prime numbers. Here, when the above (2) is taken into consideration, other examples are as follows.

(7) The time-varying period q is assumed to be A^(u)×B^(v),

where A and B are odd numbers other than one and are prime numbers, A≠B, and u and v are each an integer equal to or greater than one.

(8) The time-varying period q is assumed to be A^(u)×B^(v)×C^(w),

where A, B and C are odd numbers other than one and are prime numbers, A≠B, A≠C, B≠C, and u, v and w are each an integer equal to or greater than one.

(9) The time-varying period q is assumed to be A^(u)×B^(v)×C^(w)×D^(x),

where A, B, C and D are odd numbers other than one and are prime numbers, A≠B, A≠C, A≠D, B≠C, B≠D, C≠D, and u, v, w and x are each an integer equal to or greater than one. These are the examples. Here, as described above, the effect described in Embodiment 6 can be obtained if the time-varying period q is large. Thus it is not that a code having high error-correction capability cannot be achieved if the time-varying period m is an even number. For example, the following conditions may be satisfied when the time-varying period m is an even number.

(10) The time-varying period m is assumed to be 2^(g)×K,

where K is a prime number and g is an integer other than one.

(11) The time-varying period m is assumed to be 2^(g)×L,

where L is an odd number and the number of divisors of L is small, and g is an integer equal to or greater than one.

(12) The time-varying period m is assumed to be 2^(g)×α×β,

where α and β are odd numbers other than one, and α and β are prime numbers, and g is an integer equal to or greater than one.

(13) The time-varying period m is assumed to be 2^(g)×α^(n),

where α is an odd number other than one, and α is a prime number, and n is an integer equal to or greater than two, and g is an integer equal to or greater than one.

(14) The time-varying period m is assumed to be 2^(g) xα×β×γ,

where α, β and γ are odd numbers other than one, and α, β and γ are prime numbers, and g is an integer equal to or greater than one.

(15) The time-varying period m is assumed to be 2^(g)×α×β×γ×δ,

where α, β, γ and 8 are odd numbers other than one, and α, β, γ and δ are prime numbers, and g is an integer equal to or greater than one.

(16) The time-varying period m is assumed to be 2^(g)×A^(u)×B^(v),

where A and B are odd numbers other than one and are prime numbers, A B, u and v are each an integer equal to or greater than one, and g is an integer equal to or greater than one.

(17) The time-varying period m is assumed to be 2^(g)×A^(u)×B^(v)×C^(w),

where A, B and C are odd numbers other than one and are prime numbers,

A≠B, A≠C, B≠C, u, v and w are each is an integer equal to or greater than one, and g is an integer equal to or greater than one.

(18) The time-varying period m is assumed to be 2^(g)×A×B^(v)×C^(w)×D_(x),

where A, B, C and D are odd numbers other than one and are prime numbers, A≠B, A≠C, A≠D, B≠C, B D, C D, u, v, w and x are each an integer equal to or greater than one, and g is an integer equal to or greater than one.

However, it is likely to be able to achieve high error-correction capability even if the time-varying period q is an odd number not satisfying the above (1) to (9). Also, it is likely to be able to achieve high error-correction capability even if the time-varying period m is an even number not satisfying the above (10) to (18).

For example, when the DVB standard described in Non-Patent Literature 30 is adopted, 16200 bits and 64800 bits are defined as the block length of the LDPC code. When the above block sizes are taken into consideration, examples of appropriate values for the time-varying period include 15, 25, 27, 45, 75, 81, 135, 225. The above-described setting for the time-varying period is also effective to the concatenated code, described in Embodiment 17, contatenating an accumulator, via an interleaver, with a feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme with a coding rate of ½.

Up to now, some important conditions have been indicated in the description of a code generating method for a parity check matrix for a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, when there are a plurality of values for column weights of the partial matrixes related to the information X₁ through X_(n−1). When a parity check polynomial satisfying zero in a feedforward periodic LDPC convolutional code that is based on a parity check polynomial for the above-described concatenated code is represented as shown in Math. 284, by adding the following conditions to Condition 18-10-1 through Condition 18-10-(n−1), Condition 18-10′-1 through Condition 18-10′-(n−1), and Condition 18-11-1 through Condition 18-11-(n−1) by using Embodiment 6 as a reference, it is likely to be able to achieve excellent code.

<Condition 18-16>

[Math. 288]

v _(i,j) ≠v _(s,t)  (Math. 288)

In Math. 288, i is an integer equal to or greater than 1 and equal to or smaller than n−1, j is one or two, s is an integer equal to or greater than 1 and equal to or smaller than n−1, t is one or two, and Math. 288 holds true for each value of i, j, s, and t other than the values satisfying (i,j)=(s,t).

<Condition 18-17>

In this condition, i is an integer equal to or greater than 1 and equal to or smaller than n−1, j is one or two, and v_(i,j) is not a divisor of the time-varying period q or is one for each value of i and j.

Up to now, some important conditions have been indicated in the description of a code generating method for a parity check matrix for a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n, when all column weights of the partial matrixes related to the information X₁ through X_(n−1) are equivalent. When a parity check polynomial satisfying zero in a feedforward periodic LDPC convolutional code that is based on a parity check polynomial for the above-described concatenated code is represented as shown in Math. 280-0 through Math. 280-(q−1), by adding the following conditions to Condition 18-4, Condition 18-4′, and Condition 18-5 by using Embodiment 6 as a reference, it is likely to be able to achieve excellent code.

<Condition 18-18>

[Math. 289]

v _(i,j) ≠v _(s,t)  (Math. 289)

In Math. 289, i is an integer equal to or greater than 1 and equal to or smaller than n−1, j is an integer equal to or greater than 1 and equal to or smaller than r, s is an integer equal to or greater than 1 and equal to or smaller than n−1, t is an integer equal to or greater than 1 and equal to or smaller than r, and Math. 289 holds true for each value of i, j, s, and t other than the values satisfying (i,j)=(s,t).

<Condition 18-19>

In this condition, i is an integer equal to or greater than 1 and equal to or smaller than n−1, j is an integer equal to or greater than 1 and equal to or smaller than r, and v_(i,j) is not a divisor of the time-varying period of q or is one for each value of i and j.

Embodiment 19

In Embodiment 18, description has been made of a concatenated code concatenating an accumulator, via an interleaver, with a feed-forward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of (n−1)/n. In the present embodiment, the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ is described as an example of Embodiment 18.

A code configuration method of the above-mentioned invention is described in detail below. FIG. 127 shows an example of the configuration of an encoder for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme in the present embodiment. In FIG. 127, a coding rate of the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme, a block size for the concatenated code, the number of bits of information in one block and the number of bits of parity in one block are respectively ⅔, N bits, 2×M bits and M bits. Therefore, a relation N=3×M holds true. In FIG. 127, components that operate in a similar manner to those in FIGS. 88 and 113 are identified by the same reference signs as those in FIGS. 88 and 113.

Information X₁ included in the ith block is X_(1,1,0), X_(i,1,1), X_(1,1,2), . . . , X_(1,1,j) (=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,1,M−2) and X_(i,1,M−1).

Information X₂ included in the ith block is X_(i,2,0), X_(i,2,1), X_(1,2,2), . . . , X_(1,2,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,2, M−2), X_(i,2, M−1). A processing section 11300_1 relating to the information X₁ includes an X₁ computing section 11302_1. In the tail-biting scheme, when performing encoding with respect to the ith block, the X₁ computing section 11302_1 receives information X_(i,1,0), X_(i,1,1), X_(i,1,2), . . . , X_(i,1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,1,M−2), X_(i,1,M−1) (11301_1) as input, performs processing relating to the information X₁, and outputs data after the computation A_(i,1,0), A_(i,1,1), A_(i,1,2), . . . , A_(i,1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , A_(i,1,M−2), A_(i,1,M−1) (11303_1).

A processing section 11300_2 relating to the information X₂ includes an X₂ computing section 11302_2. In the tail-biting scheme, when performing encoding with respect to the ith block, the X₂ computing section 11302_2 receives information X_(i,2,0), X_(i,2,1), X_(i,2,2), . . . , X_(i,2,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,2,M−2), X_(i,2, M−1) (11301_2) as input, performs processing relating to the information X₂, and outputs data after the computation A_(i,2,0), A_(i,2,1), A_(i,2,2), . . . , A_(i,2,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , A_(i,2,M−2), A_(i,2,M−1) (11303_2).

The above-mentioned configuration and operation are described in detail later with use of FIG. 114.

The encoder shown in FIG. 127 is a systematic code and thus also outputs X_(1,1,0), X_(i,1,1), X_(i,1,2), . . . , X_(i,1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,1,M−2), X_(i,1,M−1) as the information X₁, and X_(i,2,0), X_(i,2,1), X_(i,2,2), . . . , X_(i,2,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,2,M−2), X_(i,2,M−1) as the information X₂.

A mod2 adder (an adder for modulo 2, i.e. an exclusive OR computer) 11304 receives data after the computation 11303_1 and 11103_2 as input, adds mod2 (modulo 2, i.e. a remainder after division by 2) and outputs data after the addition, i.e. the parity 8803 (P_(i,c,j)) after the LDPC convolutional coding.

The following describes operation of the mod2 adder (an adder for modulo 2, i.e. an exclusive OR computer) 11304 by taking the ith block at time j (j=0, 1, 2, . . . , M−3, M−2, M−1) as an example.

In the ith block at time j, data after the computation 11303_1 and data after the addition 11303_2 are A_(i,1,j) and A_(i,2,j), respectively. The mod2 adder (an adder for modulo 2, i.e. an exclusive OR computer) 11304 therefore obtains the parity 8803 (P_(i,c,j)) after the LDPC convolutional coding in the ith block at time j in the following manner.

[Math. 290]

P _(i,c,j) =A _(i,1,j) ⊕A _(i,2,j) (Math. 290)

where the symbol O represents the exclusive OR.

The interleaver 8804 receives the parity after the LDPC convolutional coding P_(i,c,0), P_(i,c,1), P_(i,c,2), . . . , P_(i,c,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , P_(i,c,M−2), P_(i,c,M−1) (8803) as input, reorders the parity (after accumulating the parity), and outputs the reordered parity 8805 after the LDPC convolutional coding. The accumulator 8806 receives the reordered parity 8805 after the LDPC convolutional coding as input, accumulates the parity and outputs the accumulated parity 8807. In this case, the accumulated parity 8807 becomes the output of the encoder shown in FIG. 127. When the parity in the ith block is represented by P_(i,0), P_(i,1), P_(1,2), . . . , P_(i,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , P_(i,M−2), P_(i,M−1), a codeword of the ith block is X_(i,1,0), X_(i,1,1), X_(i,1,2), . . . , X_(i,1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,1,M−2), X_(i,1,M−1), X_(i,2,0), X_(i,1,1), X_(i,2,2), . . . , X_(i,2,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,2,M−2), X_(i,2,M−1), P_(i,0), P_(i,1), P_(i,2), P_(i,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , P_(i,M−2), P_(i,M−1). In FIG. 127, the encoder for the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme corresponds to a part shown by the reference sign 11305. The following describes operation of the processing section 11300_1 relating to the information X₁ and operation of the processing section 11300_2 relating to the information X₂ in the encoder 11305 for the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme, with use of FIG. 114.

FIG. 114 shows the configuration of a processing section 11300 _(—) k (k=1 or 2) relating to information X_(k) shown in FIG. 127 in the feed-forward LDPC convolutional code that is based on the parity check polynomial.

In the processing section relating to the information X_(k), a second shift register 11402-2 receives a value output from a first shift register 11402-1 as input. Similarly, a third shift register 11402-3 receives a value output from the second shift register 11402-2 as input. Accordingly, a Yth shift register 11402-Y receives a value output from a (Y−1)th shift register 11402-(Y−1) as input. Here, Y=2, 3, 4, . . . , L_(k)−2, L_(k)−1, L_(k). The first shift register 11402-1 to the L_(k) th shift register 11402-L_(k) each store v_(1,t−i) (i=1, . . . , L_(k)), and, at a timing at which the next input comes in, output a stored value to the adjacent shift register to the right and store a new value output from the adjacent shift register to the left. The initial state of each shift register is the feed-forward LDPC convolutional code using the tail-biting, and thus an initial value of the S_(k) th register in the ith block is X_(1,k,M−Sk) (S_(k)=1, 2, 3, 4, . . . , L_(k−2), L_(k−1), L_(k)).

Weight multipliers 11403-0 to 11403-L_(k) switch a value of h_(k) ^((m)) to zero or one (m=0, 1, . . . , L_(k)) in accordance with a control signal output from a weight control section 11405.

Based on the parity check polynomial for the LDPC convolutional code (or a parity check matrix for the LDPC convolutional code) stored internally, the weight control section 11405 outputs a value of h_(k) ^((m)) at that timing, and supplies it to the weight multipliers 11403-0 to 11403-L_(k).

The mod2 adder (an adder for modulo 2, i.e. an exclusive OR computer) 11406 adds all mod2 (modulo 2, i.e. a remainder after division by 2) calculation results to the outputs of the weight multipliers 11403-0 to 11403-L_(k) (i.e. performs exclusive OR computation) to calculate data after the computation A_(i,k,j) (11407) and outputs the data. The data after the computation A_(i,k,j) (11407) corresponds to the data after the computation A_(i,k,j) (11303 _(—) k) shown in FIG. 113.

The first shift register 11402-1 to the L_(k) th shift register 11402-L_(k) each storing v_(1,t−i) (i=1, . . . , L_(k)) set initial values for each block. Therefore, when encoding is performed with respect to the (i+11)th block, an initial value of the S_(k) th register is X_(1+1,k,M−Sk).

By including the processing section relating to the information X_(k) shown in FIG. 114, the encoder 11305 for the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme shown in FIG. 127 performs LDPC-CC encoding in accordance with the parity check polynomial for the feed-forward LDPC convolutional code that is based on the parity check polynomial (or the parity check matrix for the feed-forward LDPC convolutional code that is based on the parity check polynomial).

If the arrangement of rows of the parity check matrix stored by the weight control section 11405 differs on a row-by-row basis, the LDPC-CC encoder 11305 shown in FIG. 127 is a time-varying convolutional encoder. In particular, if the arrangement of rows of the parity check matrix is regularly switched with a certain period (this has been described in the above-mentioned embodiment), the LDPC-CC encoder 11305 is a periodical time-varying convolutional encoder.

The accumulator 8806 shown in FIG. 127 receives the reordered parity 8805 after the LDPC convolutional coding as input. When processing the ith block, the accumulator 8806 sets an initial value of the shift register 8814 to zero. The shift register 8814 sets an initial value for each block. Therefore, if encoding is performed with respect to the (i+1)th block, for example, the initial value of the shift register 8814 is set to zero. The mod2 adder (an adder for modulo 2, i.e. an exclusive OR computer) 8815 adds mod2 (modulo 2, i.e. a remainder after division by two) to the reordered parity 8805 after the LDPC convolutional coding and the output of the shift register 8814 (i.e. performs exclusive OR computation) and outputs the accumulated parity 8807. As is described in detail later, by using such an accumulator, the column weight (the number of ones in each column) for one column may be set to one and the column weight for the other columns may be set to two in a parity portion of the parity check matrix. This contributes to the achievement of high error-correction capability when decoding using a belief propagation algorithm based on the parity check matrix is used. Operation of the interleaver 8804 in FIG. 127 is shown in detail by the reference sign 8816. The interleaver, namely an accumulation and reordering section 8818, receives the parity after the LDPC convolutional coding P_(i,c,0), P_(i,c,1), P_(i,c,2), . . . , P_(i,c,M−3), P_(i,c,M−2), P_(i,c,M−1) as input, accumulates the input data and then reorders the data. The accumulation and reordering section 8818 therefore changes the order of outputting the parity P_(i,c,0), P_(i,c,1), P_(i,c,2), . . . , P_(i,c,M−3), P_(i,c,M−2), P_(i,c,M−1). For example, the parity P_(i,c,254), P_(i,c,47), . . . , P_(i,c,M−1), . . . , P_(i,c,0), . . . is output in this order. Although the concatenated code using the accumulator shown in FIG. 127 is dealt with, for example, by Non-Patent Literatures 31 to 35, the above-mentioned decoding using the belief propagation algorithm based on the parity check matrix suitable for high-speed decoding is not used in the concatenated code described in Non-Patent Literatures 31 to 35. It is therefore difficult to realize high-speed decoding described as a challenge. By contrast, the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme described in the present embodiment uses the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme. Therefore, decoding using the belief propagation algorithm based on the parity check matrix suitable for high-speed decoding is applicable, and thus high error-correction capability is achieved. Furthermore, Non-Patent Literatures 31 to 35 do not refer to design of the concatenated code that concatenates the accumulator with the LDPC convolutional code at all. FIG. 89 shows the configuration of an accumulator that is different from the accumulator 8806 shown in FIG. 127. In FIG. 127, the accumulator shown in FIG. 89 may be used instead of the accumulator 8806. The accumulator 8900 shown in FIG. 89 receives the reordered parity 8805 (8901) after the LDPC convolutional coding shown in FIG. 127 as input, accumulates the parity and outputs the accumulated parity 8807. In FIG. 89, the second shift register 8902-2 receives a value output from the first shift register 8902-1 as input. Similarly, the third shift register 8902-3 receives a value output from the second shift register 8902-2 as input. Accordingly, the Yth shift register 8902-Y receives a value output from the (Y−1)th shift register 8902-(Y−1) as input. Here, Y=2, 3, 4, . . . , R-2, R-1, R. The first shift register 8902-1 to the Rth shift register 8902-R each store v_(1,t−i) (i=1, . . . , R), and, at a timing at which the next input comes in, output a stored value to the adjacent shift register to the right and store a new value output from the adjacent shift register to the left. When processing the ith block, the accumulator 8900 sets an initial value of each of the first shift register 8902-1 to the Rth shift register 8902-R to zero. The first shift register 8902-1 to the Rth shift register 8902-R each set an initial value for each block. Therefore, if encoding is performed with respect to the (i+1)th block, for example, the initial value of each of the first shift register 8902-1 to the Rth shift register 8902-R is set to zero.

The weight multipliers 8903-1 to 8903-R switch a value of h₁ ^((m)) (m=1, . . . , R) to zero or one in accordance with a control signal output from the weight control section 8904.

Based on the partial matrix relating to the accumulator in the parity check matrix stored internally, the weight control section 8904 outputs a value of h_(i) ^((m)) at that timing, and supplies it to the weight multipliers 8903-1 to 8903-R. The mod2 adder (an adder for modulo 2, i.e. an exclusive OR computer) 8905 adds all mod2 (modulo 2, i.e. a remainder after division by 2) calculation results to the outputs of the weight multipliers 8903-1 to 8903-R and the reordered parity 8805 (8901) after the LDPC convolutional coding (i.e. performs exclusive OR computation) and outputs the accumulated parity 8807 (8902). The accumulator 9000 shown in FIG. 90 receives the reordered parity 8805 (8901) after the LDPC convolutional coding shown in FIG. 127 as input, accumulates the parity and outputs the accumulated parity 8807(8902). In FIG. 90, components that operate in a similar manner to those in FIG. 89 are identified by the same reference signs as those in FIG. 89. The accumulator 8900 shown in FIG. 89 is different from the accumulator 9000 shown in FIG. 90 in that a value of h₁ ⁽¹⁾ of the weight multiplier 8903-1 shown in FIG. 89 is fixed to one. By using such an accumulator, the column weight (the number of ones in each column) for one column may be set to one and the column weight for the other columns may be set to two in a parity portion of the parity check matrix. This contributes to the achievement of high error-correction capability when decoding using the belief propagation algorithm based on the parity check matrix is used. The following describes the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme in the encoder 11305 for the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme shown in FIG. 127 in the present embodiment. The time-varying LDPC code that is based on the parity check polynomial is described in detail in the present specification. Although having been described in Embodiment 15, the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme is described here again. The following describes an example of requirements for the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme for achieving high error-correction capability in the concatenated code in the present embodiment. The LDPC-CC based on the parity check polynomial of a coding rate of ⅔ disclosed in Non-Patent Literature 20, in particular, the feed-forward LDPC-CC based on the parity check polynomial of a coding rate of ⅔ is described first. Information bits of X₁ and X₂ and parity bit P at time j are represented by X_(1,j), X_(2,j) and P_(j), respectively. Vector u_(j) at time j is represented by u_(j)=(X_(1,j), X_(2,j), P_(j)). An encoded sequence is represented by u=(u₀, u₁, . . . , u_(j),)^(T). Polynomial of the information bits X₁ and X₂ is respectively represented by X₁(D) and X₂(D) and polynomial of the parity bit P is represented by P(D), where D is delay operator. Considered is the parity check polynomial satisfying zero in the following Math in the feed-forward LDPC-CC based on the parity check polynomial of a coding rate of ⅔.

[Math. 291]

(D ^(a) ^(1,1) +D ^(a) ^(1,2) + . . . +D ^(a) ^(1,) r1+1)X ₁(D)+(D ^(a) ^(2,1) +D ^(a) ^(2,2) + . . . +D ^(a) ^(2,) r2+1)X ₂(D)+P(D)=0  (Math. 291)

In Math. 291, a_(p,q) (p=1 or 2; q=1, 2, . . . , r_(p)) is a natural number. a_(p,y)≠a_(p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z. In order to create LDPC-CC of a coding rate of R=⅔ and a time-varying period of m, the parity check polynomial satisfying zero based on Math. 291 is prepared. In this case, the ith (i=0, 1, . . . , m−1) parity check polynomial satisfying zero is represented as shown below.

[Math. 292]

A _(X1,i) (D)X ₁(D)+A _(X2,i)(D)X ₂(D)+P(D)=0  (Math. 292)

In Math. 292, the maximum degree for D in A_(Xδ,i) (D) (6=1 or 2) is represented by Γ_(Xδ,i). The maximum value of Γ_(Xδ,i) is Γ_(i). The maximum value of Γ_(i) (i=0, 1, . . . , m−1) is Γ. Considering the encoded sequence u, vector h_(i) corresponding to the ith parity check polynomial is represented as shown below with use of Γ.

[Math. 293]

h _(i) =[h _(i,Γ) ,h _(i,Γ−1) , . . . ,h _(i,1) ,h _(i,0])  (Math. 293)

In Math. 293, h_(i,v) (v=0, 1, . . . , Γ) is 1×3 vector, and is represented by [α_(i,v,X1), α_(i,v,X2), β_(i,v)]. This is because the parity check polynomial of Math. 292 has α_(i,v,Xw)D^(v)X_(w)(D) and D⁰P(D) (w=1 or 2 and α_(i,v,Xw)ε[0,1]). In this case, the parity check polynomial satisfying zero in Math. 292 has D⁰X₁(D), D⁰X₂(D) and D⁰P(D), and thus satisfies the following Math.

[Math. 294]

h _(i,0)=[111]  (Math. 294)

By using Math. 293, the LDPC-CC parity check matrix based on the parity check polynomial of a coding rate of R=⅔ and a time-varying period of m is represented as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 295} \right\rbrack & \; \\ {H = \begin{bmatrix} \ddots & \; & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \; \\ \; & h_{0,\Gamma} & h_{0,{\Gamma - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,0} & \; & \; & \; & \; & \; & \; & \; \\ \; & \; & h_{1,\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{1,1} & h_{1,0} & \; & \; & \; & \; & \; & \; \\ \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; \\ \; & \; & \; & \; & h_{{m - 1},\Gamma} & h_{{m - 1},{\Gamma - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},0} & \; & \; & \; & \; \\ \; & \; & \; & \; & \; & h_{0,\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,1} & h_{0,0} & \; & \; & \; \\ \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; \\ \; & \; & \; & \; & \; & \; & h_{{m - 1},\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},0} & \; \\ \; & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \; & \ddots \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 295} \right) \end{matrix}$

In Math. 295, in the case of the infinite LDPC-CC, Λ(k)=Λ(k+m) for ^(∀)k. Λ(k) corresponds to h, in the kth row of the parity check matrix k. Regardless of whether or not to perform the tail-biting, assuming that the Yth row of the LDPC-CC parity check matrix based on the parity check polynomial of a time-varying period of m corresponds to the parity check polynomial satisfying the 0th zero in the LDPC-CC of a time-varying period of m, the Y+1, Y+2, . . . , Y+j (j=0, 1, 2, 3, . . . , m−3, m−2, m−1), . . . , (Y+m−1)th rows of the parity check matrix respectively correspond to the parity check polynomials satisfying the 1, 2, . . . , j, . . . , (m−1)th zero in the LDPC-CC of a time-varying period of m.

Although Math. 291 is used to describe the above-mentioned base parity check polynomial, the parity check polynomial is not limited to that satisfies Math.

291. For example, the parity check polynomial satisfying zero not in Math. 291 but in Math. 296 may be used.

[Math. 296]

(D ^(a) ^(1,1) +D ^(a) ^(1,2) + . . . +D ^(a) ^(1,) r1)X ₁(D)+(D ^(a) ^(2,1) +D ^(a) ^(2,2) + . . . +D ^(a) ^(2,) r2)X ₂(D)+P(D)=0  (Math. 296)

In Math. 296, a_(p,q) (p=1 or 2; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. a_(p,y)≠a_(p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z. In order to achieve high error-correction capability in the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme described in the present embodiment, r₁ and r₂ are each preferably equal to or greater than three in the parity check polynomial satisfying zero in Math. 291, and preferably equal to or greater than four in the parity check polynomial satisfying zero in Math. 296. Therefore, with reference to Math. 291, the gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero (see Math. 128) in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q used in the concatenated code in the present embodiment is represented as shown below.

[Math. 297]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,) r1+1)X ₁(D)+(D ^(a#g,2,1) +D ^(a#g,2,2) + . . . +D ^(a#g,2,) r2+1)X ₂(D)+P(D)=0  (Math. 297)

In Math. 297, a_(#g,p,q) (p=1 or 2; q=1, 2, . . . , r_(p)) is a natural number. a_(#g,p,y)≠a_(#g,p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z. If r₁ and r₂ are each set to be equal to or greater than three, high error-correction capability is achieved. The parity check polynomial satisfying zero in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q is therefore provided as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 298} \right\rbrack & \; \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}{\mspace{11mu} \;}0{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + {D^{{a{\# 0}},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + {D^{{a{\# 0}},2,}r_{2}} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 298}\text{-}0} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 1{st}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + {D^{{a{\# 1}},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + {D^{{a{\# 1}},2,}r_{2}} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 298}\text{-}1} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 2{nd}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + {D^{{a{\# 2}},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + {D^{{a{\# 2}},2,}r_{2}} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}\mspace{310mu} \vdots} & \left( {{{Math}.\mspace{14mu} 298}\text{-}2} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} g\; {th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + {D^{{a\# g},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + {D^{{a\# g},2,}r_{2}} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}\mspace{310mu} \vdots} & \left( {{{Math}.\mspace{14mu} 298}\text{-}g} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q - 2} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + {D^{{a\# {({q - 2})}},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + {D^{{a\# {({q - 2})}},2,}r_{2}} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 298}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q - 1} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + {D^{{a\# {({q - 1})}},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + {D^{{a\# {({q - 1})}},2,}r_{2}} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 298}\text{-}\left( {q\text{-}1} \right)} \right) \end{matrix}$

In this case, r₁ and r₂ are each set to be equal to or greater than three. In Math. 298-0 to Math. 298-(q−1), the number of terms of each of X₁(D) and X₂(D) is four or more in any of the parity check polynomial satisfying zero.

With reference to Math. 297, the gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero (see Math. 128) in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q used in the concatenated code in the present embodiment is represented as shown below.

[Math. 299]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,) r1)X ₁(D)+(D ^(a#g,2,1) +D ^(a#g,2,2) + . . . +D ^(a#g,2,) r2)X ₂(D)+P(D)=0  (Math. 299)

In Math. 299, a_(g,p,q) (p=1 or 2; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. a_(#g,p,y)≠a_(#g,p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z. If r₁ and r₂ are each set to be equal to or greater than four, high error-correction capability is achieved. The parity check polynomial satisfying zero in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q is therefore provided as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 300} \right\rbrack & \; \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} 0\; {th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + {D^{{a{\# 0}},1,}r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + {D^{{a{\# 0}},2,}r_{2}}} \right){X_{2}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 300}\text{-}0} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}{\mspace{11mu} \;}1\; {st}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + {D^{{a{\# 1}},1,}r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + {D^{{a{\# 1}},2,}r_{2}}} \right){X_{2}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 300}\text{-}1} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}{\mspace{11mu} \;}2\; {nd}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + {D^{{a{\# 2}},1,}r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + {D^{{a{\# 2}},2,}r_{2}}} \right){X_{2}(D)}} + {P(D)}} = 0}\mspace{256mu} \vdots} & \left( {{{Math}.\mspace{14mu} 300}\text{-}2} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}{\mspace{11mu} \;}g\; {th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + {D^{{a\# g},1,}r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + {D^{{a\# g},2,}r_{2}}} \right){X_{2}(D)}} + {P(D)}} = 0}\mspace{256mu} \vdots} & \left( {{{Math}.\mspace{14mu} 300}\text{-}g} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q - 2} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + {D^{{a\# {({q - 2})}},1,}r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + {D^{{a\# {({q - 2})}},2,}r_{2}}} \right){X_{2}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 300}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q - 1} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + {D^{{a\# {({q - 1})}},1,}r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + {D^{{a\# {({q - 1})}},2,}r_{2}}} \right){X_{2}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 300}\text{-}\left( {q\text{-}1} \right)} \right) \end{matrix}$

In this case, r₁ and r₂ are each set to be equal to or greater than four. In Math. 300-0 to Math. 300-(q−1), the number of terms of each of X₁(D) and X₂(D) is four or more in any of the parity check polynomial satisfying zero. As described above, in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q used in the concatenated code in the present embodiment, if the number of terms of each of X₁(D) and X₂(D) is four or more in any of q parity check polynomials satisfying zero, it is highly likely that high error-correction capability is achieved. Since the number of terms of each of X₁(D) and X₂(D) is four or more in order to satisfy the conditions described in Embodiment 1, the time-varying period is required to be equal to or greater than four. If the condition is not satisfied, any of the conditions described in Embodiment 1 may not be satisfied, and thus the possibility of achieving high error-correction capability can be reduced. For example, as described in Embodiment 6, in order to achieve the effect of having increased the time-varying period at the time of making the Tanner graph, the number of terms of each of X₁(D) and X₂(D) is four or more. The time-varying period is therefore preferably an odd number. Other effective conditions are as follows:

(1) The time-varying period q is a prime number.

(2) The time-varying period q is an odd number and the number of divisors of q is small.

(3) The time-varying period q is assumed to be α×β,

where α and β are odd numbers other than one and are prime numbers.

(4) The time-varying period q is assumed to be α^(n),

where α is an odd number other than one and is a prime number, and n is an integer equal to or greater than two.

(5) The time-varying period q is assumed to be α×β×γ,

where α, β, and γ are odd numbers other than one and are prime numbers.

(6) The time-varying period q is assumed to be αxβ×γ×δ,

where α, β, γ, and δ are odd numbers other than one and are prime numbers. Since the effect described in Embodiment 6 is achieved as the time-varying period q grows large, it is not always true that a code having high error-correction capability is not obtained when the time-varying period q is an even number.

For example, conditions as shown below may be satisfied when the time-varying period q is an even number:

(7) The time-varying period q is assumed to be 2^(g)×K,

where K is a prime number, and g is an integer equal to or greater than one.

(8) The time-varying period q is assumed to be 2⁹×L,

where L is an odd number, the number of divisors of L is small, and g is an integer equal to or greater than one.

(9) The time-varying period q is assumed to be 2^(g)×α×β,

where α and β are odd numbers other than one and are prime numbers, and

g is an integer equal to or greater than one.

(10) The time-varying period q is assumed to be 2^(g)×α^(n),

where α is an odd number other than one and is a prime number, n is an integer equal to or greater than two, and g is an integer equal to or greater than one.

(11) The time-varying period q is assumed to be 2^(g) xα×β×γ,

where α, β, and γ are odd numbers other than one and are prime numbers, and g is an integer equal to or greater than one.

(12) The time-varying period q is assumed to be 2^(g) xα×β×γ×δ,

where α, β, γ, and 8 are odd numbers other than one and are prime numbers, and g is an integer equal to or greater than one.

However, when the time-varying period q is an odd number not satisfying any of the above-mentioned conditions (1) to (6) or an even number not satisfying any of the above-mentioned conditions (7) to (12), high error-correction capability can be achieved.

The following describes the tail-biting scheme for the feed-forward time-varying LDPC-CC based on the parity check polynomial (by way of example, the parity check polynomial in Math. 297 is used).

[Tail-biting Scheme]

The gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero (see Math. 128) in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q used in the concatenated code in the present embodiment described above is represented as shown below.

[Math. 301]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,) r1+1)X ₁(D)+(D ^(a#g,2,1) +D ^(a#g,2,2) + . . . +D ^(a#g,2,) r2+1)X ₂(D)+P(D)=0  (Math. 301)

In Math. 301, a_(#g,p,q) (p=1 or 2; q=1, 2, . . . , r_(p)) is a natural number. a_(#g,p,y)≠a_(#g,p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z. Here, r₁ and r₂ are each equal to or greater than three. Considering in a similar manner to Math. 30, Math. 34 and Math. 47, assuming a sub-matrix (vector) corresponding to Math. 301 to be H_(g), the gth sub-matrix can be represented as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 302} \right\rbrack & \; \\ {H_{g} = \left\{ {H_{g}^{\prime},\underset{\underset{3}{}}{111}} \right\}} & \left( {{Math}.\mspace{14mu} 302} \right) \end{matrix}$

In Math. 302, three continuous ones correspond to the terms of D⁰X(D)=X₁(D), D⁰X₂(D)=X₂(D) and D⁰P(D)=P(D) in Math. 301. The parity check matrix H can be represented as shown in FIG. 128. As shown in FIG. 128, in the parity check matrix H, a configuration is employed in which a sub-matrix is shifted three columns to the right between the ith row and (i+1)th row (see FIG. 128). It is assumed that data of the information X₁, X₂ and the parity P at time k are respectively X_(1,k), X_(2,k) and P_(k). When transmission vector u is assumed to be u=(X_(1,0), X_(2,0), P₀, X_(1,1), X_(2,1), P₁, . . . , X_(1,k), X_(2,k), P_(k), . . . )^(T), Hu=0 holds true (0 in Hu=0 here indicates that all elements of the vector are zeros).

Non-Patent Literature 12 discloses the parity check matrix when tail-biting is performed. The parity check matrix is as shown in Math. 135. In Math. 135, H represents the parity check matrix and H^(T) represents a syndrome former. H^(T) _(i)(t) (i=0, 1, . . . , M_(s)) represents a c×(c−b) sub-matrix, and M_(s) represents a memory size.

According to FIG. 128 and Math. 135, the following conditions are important for the parity check matrix H required at the time of decoding in order to achieve high error-correction capability in the LDPC-CC of a time-varying period of q and coding rate of ⅔ based on the parity check polynomial.

<Condition #19-1>

-   -   The number of rows of the parity check matrix is a multiple of         the time-varying period q.     -   The number of columns of the parity check matrix is therefore a         multiple of 3×q. In this case, a log-likelihood ratio (for         example) required at the time of decoding is a log-likelihood         ratio of bits of the multiple of 3×q.

The parity check polynomial satisfying zero in the LDPC-CC of a time-varying period of q and a coding rate of ⅔ required to satisfy Condition #19-1 is not limited to that based on Math. 301, and may be the periodical time-varying LDPC-CC of a period of q based on Math. 299.

Since the periodical time-varying LDPC-CC of a period of q is a kind of the feed-forward convolutional code, the encoding method disclosed in Non-Patent Literature 10 and Non-Patent Literature 11 is applicable to the encoding method used when tail-biting is performed. The procedure is as shown below.

<Procedure 19-1>

For example, in the periodical time-varying LDPC-CC of a period q defined in Math. 301, P(D) is represented as shown below.

[Math. 303]

P(D)=(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,) r1+1)X ₁(D)+(D ^(a#g,2,1) +D ^(a#g,2,2) + . . . +D ^(a#g,2,) r2+1)X ₂(D)  (Math. 303)

Math. 303 is represented as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 304} \right\rbrack & \; \\ {{P\left\{ i \right\}} = {{X_{1}\lbrack i\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# \; g},1,1}} \right\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# \; g},1,2}} \right\rbrack} \oplus \ldots \oplus {X_{1}\left\lbrack {i - a_{{\# \; g},1,_{r\; 1}}} \right\rbrack} \oplus {X_{2}\lbrack i\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# \; g},2,1}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# \; g},2,2}} \right\rbrack} \oplus \ldots \oplus {X_{2}\left\lbrack {i - a_{{\# \; g},2,_{r\; 2}}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 304} \right) \end{matrix}$

where the symbol 0 represents the exclusive OR.

Since a coding rate of the periodical time-varying LDPC-CC of a feed-forward period of q based on the parity check polynomial is ⅔ when tail-biting is performed as described above, assuming that the number of bits of each of the information X₁ and the information X₂ in one block is M bits, the number of bits of the parity in one block is M bits in the periodical time-varying LDPC-CC of the feed-forward period of q based on the parity check polynomial when tail-biting is performed. A codeword u₁ of the jth block is therefore represented by u_(j)=(X_(j,1,0), X_(j,2,0), P_(j,0), X_(j,1,1), X_(j,2,1), P_(j,1), . . . , X_(j,1,i), X_(j,2,i), P_(j,i), . . . , X_(j,1,M−2), X_(j,2,M−2), P_(j,M−2), X_(j,1,M−1), X_(j,2,M−1), P_(j,M−1)). Here, i=0, 1, 2, . . . , M−2, M−1. X_(j,k,i) represents information X_(k) (k=1 or 2) at time i of the jth block. P_(j,i) represents parity P at time of the jth block in the periodical time-varying LDPC-CC of the feed-forward period of q based on the parity check polynomial when tail-biting is performed.

Therefore, when i%q=k (% represents the modulo operator) at time i of the jth block, parity at time i of the jth block is obtained by assuming that g=k in Math. 303 and Math. 304. Therefore, when i%q=k, parity P_(j,i) at time i of the jth block is obtained by using the following Math.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 305} \right\rbrack & \; \\ {{P\left\{ i \right\}} = {{X_{1}\lbrack i\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# \; k},1,1}} \right\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# \; k},1,2}} \right\rbrack} \oplus \ldots \oplus {X_{1}\left\lbrack {i - a_{{\# \; k},1,_{r\; 1}}} \right\rbrack} \oplus {X_{2}\lbrack i\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# \; k},2,1}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# \; k},2,2}} \right\rbrack} \oplus \ldots \oplus {X_{2}\left\lbrack {i - a_{{\# \; k},2,_{r\; 2}}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 305} \right) \end{matrix}$

where the symbol G represents the exclusive OR.

Therefore, when i%q=k, parity P_(j,i) at time i of the jth block is represented as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 306} \right\rbrack & \; \\ {P_{j,i} = {X_{j,1,i} \oplus X_{{j1},{Z\; 1},1} \oplus X_{j,1,{Z\; 1},1} \oplus X_{j,1,{Z\; 1},2} \oplus \ldots \oplus X_{j,1,{Z\; 1},_{r\; 1}} \oplus X_{j,2,i} \oplus X_{j,2,{Z\; 2},1} \oplus X_{j,2,{Z\; 2},2} \oplus \ldots \oplus X_{j,2,{Z\; 2},_{r\; 2}}}} & \left( {{Math}.\mspace{14mu} 306} \right) \end{matrix}$

The following Math holds true.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 307} \right\rbrack & \; \\ {Z_{1,1} = {i - a_{{\# k},1,1}}} & \left( {{{Math}.\mspace{14mu} 307}\text{-}1\text{-}1} \right) \\ {{Z_{1,2} = {i - a_{{\# k},1,2}}} \vdots} & \left( {{{Math}.\mspace{14mu} 307}\text{-}1\text{-}2} \right) \\ {{Z_{1,s} = {i - {a_{{\# k},1,s}\mspace{14mu} \left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}} \vdots} & \left( {{{Math}.\mspace{14mu} 307}\text{-}1\text{-}s} \right) \\ {Z_{1,_{r_{1}}} = {i - a_{{\# k},1,_{r_{1}}}}} & \left( {{{Math}.\mspace{14mu} 307}\text{-}1\text{-}r_{1}} \right) \\ {Z_{2,1} = {i - a_{{\# k},2,1}}} & \left( {{{Math}.\mspace{14mu} 307}\text{-}2\text{-}1} \right) \\ {{Z_{2,2} = {i - a_{{\# k},2,2}}} \vdots} & \left( {{{Math}.\mspace{14mu} 307}\text{-}2\text{-}2} \right) \\ {{Z_{2,s} = {i - {a_{{\# k},2,s}\mspace{14mu} \left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}} \vdots} & \left( {{{Math}.\mspace{14mu} 307}\text{-}2\text{-}s} \right) \\ {Z_{2,_{r_{2}}} = {i - a_{{\# k},2,_{r_{2}}}}} & \left( {{{Math}.\mspace{14mu} 307}\text{-}2\text{-}r_{2}} \right) \end{matrix}$

Since tail-biting is performed, however, the parity P_(j,i) at time i of the jth block is obtained from a group of mathematical expressions in Math. 305 (Math. 306) and Math. 308.

$\begin{matrix} \left\lbrack {{{Math}.\mspace{14mu} 308}\text{-}1} \right\rbrack & \; \\ {{{{When}\mspace{14mu} Z_{1,1}} \geq {0\text{:}\mspace{14mu} z_{1,1}}} = {i - a_{{\# \; k},1,1}}} & \left( {{{Math}.\mspace{14mu} 308}\text{-}1\text{-}1\text{-}1} \right) \\ {{{{{When}\mspace{14mu} Z_{1,1}} < {0\text{:}\mspace{11mu} z_{1,1}}} = {i - a_{{\# \; k},1,1}\; + M}}\;} & \left( {{{Math}.\mspace{14mu} 308}\text{-}1\text{-}1\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{1,2}} \geq {0\text{:}\mspace{14mu} z_{1,2}}} = {i - a_{{\# \; k},1,2}}} & \left( {{{Math}.\mspace{14mu} 308}\text{-}1\text{-}2\text{-}1} \right) \\ {{{{{When}\mspace{14mu} Z_{1,2,}} < {0\text{:}\mspace{11mu} z_{1,2}}} = {i - a_{{\# \; k},1,2}\; + M}}\vdots} & \left( {{{Math}.\mspace{14mu} 308}\text{-}1\text{-}2\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{1,s}} \geq {0\text{:}}}{z_{1,2} = {i - {a_{{\# \; k},1,2}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}}} & \left( {{{Math}.\mspace{14mu} 308}\text{-}1\text{-}s\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{1,2,}} < {0\text{:}}}{z_{1,2} = {i - {a_{{\# \; k},1,2}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}}\vdots} & \left( {{{Math}.\mspace{14mu} 308}\text{-}1\text{-}s\text{-}2} \right) \end{matrix}$

$\begin{matrix} \left\lbrack {{{Math}.\mspace{14mu} 308}\text{-}2} \right\rbrack & \; \\ {{{{When}\mspace{14mu} Z_{1,{r\; 1}}} \geq {0\text{:}}}{Z_{1,_{r_{1}}} = {i - a_{{\# k},1,_{r_{1}}}}}} & \left( {{{Math}.\mspace{14mu} 308}\text{-}1\text{-}r_{1}\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{1,{r\; 1}}} < {0\text{:}}}{Z_{1,_{r_{1}}} = {i - a_{{\# \; k},1,_{r_{1}}} + M}}} & \left( {{{Math}.\mspace{14mu} 308}\text{-}1\text{-}r_{1}\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{2,1}} \geq {0\text{:}}}{Z_{2,1} = {i - a_{{\# \; k},2,1}}}} & \left( {{{Math}.\mspace{14mu} 308}\text{-}2\text{-}1\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{2,1}} < {0\text{:}}}{Z_{2,1} = {i - a_{{\# k},2,1} + M}}} & \left( {{{Math}.\mspace{14mu} 308}\text{-}2\text{-}1\text{-}2} \right) \\ {{{{{When}\mspace{14mu} Z_{2,2}} \geq 0}:Z_{2,2}} = {i - a_{{\# \; k},2,2}}} & \left( {{{Math}.\mspace{14mu} 308}\text{-}2\text{-}2\text{-}1} \right) \\ {{{{{{When}\mspace{14mu} Z_{2,2}} < 0}:Z_{2,2}} = {i - a_{{\# \; k},2,2} + M}}\mspace{85mu} \vdots} & \left( {{{Math}.\mspace{14mu} 308}\text{-}2\text{-}2\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{2,s}} \geq {0\text{:}}}{Z_{2,s} = {i - {a_{{\# \; k},2,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}}} & \left( {{{Math}.\mspace{14mu} 308}\text{-}2\text{-}s\text{-}1} \right) \\ {{{{{{When}\mspace{14mu} Z_{2,s}} < 0}:Z_{2,s}} = {i - a_{{\# \; k},2,s} + {M\left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}}\mspace{85mu} \vdots} & \left( {{{Math}.\mspace{14mu} 308}\text{-}2\text{-}s\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{2,{r\; 2}}} \geq {0\text{:}}}{Z_{2,_{r_{2}}} = {i - a_{{\# \; k},2,_{r_{2}}}}}} & \left( {{{Math}.\mspace{14mu} 308}\text{-}2\text{-}r_{2}\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{2,{r\; 2}}} < {0\text{:}}}{Z_{2,_{r_{2}}} = {i - a_{{\# \; k},2,_{r_{2}}} + M}}} & \left( {{{Math}.\mspace{14mu} 308}\text{-}2\text{-}r_{2}\text{-}2} \right) \end{matrix}$

<Procedure 19-1′>

Considered is the periodical time-varying LDPC-CC of a period q defined in Math. 299, which is different from the periodical time-varying LDPC-CC of a period q defined in Math. 303. In this case, description of tail-biting is also made with respect to Math. 299. P(D) is represented as shown below.

[Math. 309]

P(D)=(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,) r1)X ₁(D)+(D ^(a#g,2,1) +D ^(a#g,2,2) + . . . +D ^(a#g,2,) r2)X ₂(D)  (Math. 309)

Math. 309 is represented as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 310} \right\rbrack & \; \\ {{P\lbrack i\rbrack} = {{X_{1}\left\lbrack {i - a_{{\# \; g},1,1}} \right\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# \; g},1,2}} \right\rbrack} \oplus \ldots \oplus {X_{1}\left\lbrack {i - a_{{\# \; g},1,_{r\; 1}}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# \; g},2,1}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# \; g},2,2}} \right\rbrack} \oplus \ldots \oplus {X_{2}\left\lbrack {i - a_{{\# \; g},2,_{r\; 2}}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 310} \right) \end{matrix}$

where the symbol ⊕ represents the exclusive OR.

Since a coding rate of the periodical time-varying LDPC-CC of a feed-forward period of q based on the parity check polynomial is ⅔ when tail-biting is performed, assuming that the number of bits of each of the information X₁ and the information X₂ in one block is M bits, the number of bits of the parity in one block is M bits in the periodical time-varying LDPC-CC of the feed-forward period of q based on the parity check polynomial when tail-biting is performed. A codeword u_(j) of the jth block is therefore represented by u_(j)=(X_(j,1,0), X_(j,2,0), P_(j,0), X_(j,1,1), X_(j,2,1), P_(j,1), . . . , X_(j,1,i), X_(j,2,i), P_(j,i), . . . , X_(j,1,M−2), X_(j,2,M−2), P_(j,M−2), X_(j,1,M−1), X_(j,2,M−1), P_(j,M−0)) Here, i=0, 1, 2, . . . , M−2, M−1. X_(j,k,i) represents information X_(k) (k=1 or 2) at time i of the jth block. P, i represents parity P at time i of the jth block in the periodical time-varying LDPC-CC of the feed-forward period of q based on the parity check polynomial when tail-biting is performed.

Therefore, when i%q=k (% represents the modulo operator) at time i of the jth block, parity at time i of the jth block is obtained by assuming that g=k in Math. 309 and Math. 310. Therefore, when i%q=k, parity P_(j,i) at time i of the jth block is obtained by using the following Math.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 311} \right\rbrack & \; \\ {{P\left\{ i \right\}} = {{X_{1}\left\lbrack {i - a_{{\# \; k},1,1}} \right\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# \; k},1,2}} \right\rbrack} \oplus \ldots \oplus {X_{1}\left\lbrack {i - a_{{\# \; k},1,_{r\; 1}}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# \; k},2,1}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# \; k},2,2}} \right\rbrack} \oplus \ldots \oplus {X_{2}\left\lbrack {i - a_{{\# \; k},2,_{r\; 2}}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 311} \right) \end{matrix}$

where the symbol ⊕ represents the exclusive OR.

Therefore, when i%q=k, parity P_(j,i) at time i of the jth block is represented as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 312} \right\rbrack & \; \\ {P_{j,i} = {X_{{j\; 1},{Z\; 1},1} \oplus X_{j,1,{Z\; 1},2} \oplus \ldots \oplus X_{j,1,{Z\; 1},_{r\; 1}} \oplus {X_{j,2,{Z\; 2},1}X_{j,2,{Z\; 2},2}} \oplus \ldots \oplus X_{{j\; 2},{Z\; 2},_{r\; 2}}}} & \left( {{Math}.\mspace{14mu} 312} \right) \end{matrix}$

The following Math holds true.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 313} \right\rbrack & \; \\ {Z_{1,1} = {i - a_{{\# k},1,1}}} & \left( {{{Math}.\mspace{14mu} 313}\text{-}1\text{-}1} \right) \\ {{Z_{1,2} = {i - a_{{\# k},1,2}}}\mspace{85mu} \vdots} & \left( {{{Math}.\mspace{14mu} 313}\text{-}1\text{-}2} \right) \\ {{Z_{1,s} = {i - {a_{{\# k},1,s}\mspace{14mu} \left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}}\mspace{85mu} \vdots} & \left( {{{Math}.\mspace{14mu} 313}\text{-}1\text{-}s} \right) \\ {Z_{1,_{r_{1}}} = {i - a_{{\# k},1,r_{1}}}} & \left( {{{Math}.\mspace{14mu} 313}\text{-}1\text{-}r_{1}} \right) \\ {Z_{2,1} = {i - a_{{\# k},2,1}}} & \left( {{{Math}.\mspace{14mu} 313}\text{-}2\text{-}1} \right) \\ {{Z_{2,2} = {i - a_{{\# k},2,2}}}\mspace{85mu} \vdots} & \left( {{{Math}.\mspace{14mu} 313}\text{-}2\text{-}2} \right) \\ {{Z_{2,s} = {i - {a_{{3k},2,s}\mspace{11mu} \left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}}\mspace{79mu} \vdots} & \left( {{{Math}.\mspace{14mu} 313}\text{-}2\text{-}s} \right) \\ {Z_{2,_{r_{2}}} = {i - a_{{\# k},2,_{r_{2}}}}} & \left( {{{Math}.\mspace{14mu} 313}\text{-}2\text{-}r_{2}} \right) \end{matrix}$

Since tail-biting is performed, however, the parity P_(j,i) at time i of the jth block is obtained from a group of mathematical expressions in Math. 311 (Math. 312) and Math. 314.

$\begin{matrix} \left\lbrack {{{Math}.\mspace{14mu} 314}\text{-}1} \right\rbrack & \; \\ {\mspace{79mu} {{{{When}\mspace{14mu} Z_{1,1}} \geq {0\text{:}\mspace{14mu} Z_{1,1}}} = {i - a_{{\# \; k},1,1}}}} & \left( {{{Math}.\mspace{14mu} 314}\text{-}1\text{-}1\text{-}1} \right) \\ {\mspace{79mu} {{{{When}\mspace{14mu} Z_{1,1}} < {0\text{:}\mspace{11mu} Z_{1,1}}} = {i - a_{{\# \; k},1,1}\; + M}}\;} & \left( {{{Math}.\mspace{14mu} 314}\text{-}1\text{-}1\text{-}2} \right) \\ {\mspace{79mu} {{{{When}\mspace{14mu} Z_{1,2}} \geq {0\text{:}\mspace{14mu} Z_{1,2}}} = {i - a_{{\# \; k},1,2}}}} & \left( {{{Math}.\mspace{14mu} 314}\text{-}1\text{-}2\text{-}1} \right) \\ {\mspace{79mu} {{{{{When}\mspace{14mu} Z_{1,2,}} < {0\text{:}\mspace{11mu} Z_{1,2}}} = {i - a_{{\# \; k},1,2}\; + M}}\mspace{79mu} \vdots}} & \left( {{{Math}.\mspace{14mu} 314}\text{-}1\text{-}2\text{-}2} \right) \\ {\mspace{79mu} {{{{When}\mspace{14mu} Z_{1,s}} \geq {0\text{:}}}\mspace{79mu} {Z_{1,s} = {i - {a_{{\# \; k},1,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}}}} & \left( {{{Math}.\mspace{14mu} 314}\text{-}1\text{-}s\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{1,s,}} < {0\text{:}}}{Z_{1,s} = {i - a_{{\# \; k},1,s} + {M\left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}}\mspace{79mu} \vdots} & \left( {{{Math}.\mspace{14mu} 314}\text{-}1\text{-}s\text{-}2} \right) \end{matrix}$

$\begin{matrix} \left\lbrack {{{Math}.\mspace{14mu} 314}\text{-}2} \right\rbrack & \; \\ {{{{When}\mspace{14mu} Z_{1,{r\; 1}}} \geq {0\text{:}}}{Z_{1,_{r_{1}}} = {i - a_{{\# k},1,_{r_{1}}}}}} & \left( {{{Math}.\mspace{14mu} 314}\text{-}1\text{-}r_{1}\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{1,{r\; 1}}} < {0\text{:}}}{Z_{1,r_{1}} = {i - a_{{\# k},1,_{r_{1}}} + M}}} & \left( {{{Math}.\mspace{14mu} 314}\text{-}1\text{-}r_{1}\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{2,1}} \geq {0\text{:}}}{Z_{2,1} = {i - a_{{\# k},2,1}}}} & \left( {{{Math}.\mspace{14mu} 314}\text{-}2\text{-}1\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{2,1}} < {0\text{:}}}{Z_{2,1} = {i - a_{{\# k},2,1} + M}}} & \left( {{{Math}.\mspace{14mu} 314}\text{-}2\text{-}1\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{2,2}} \geq {0\text{:}}}{Z_{2,2} = {i - a_{{\# k},2,2}}}} & \left( {{{Math}.\mspace{14mu} 314}\text{-}2\text{-}2\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{2,2}} < {0\text{:}}}{Z_{2,2} = {i - a_{{\# k},2,2} + M}}\mspace{85mu} \vdots} & \left( {{{Math}.\mspace{14mu} 314}\text{-}2\text{-}2\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{2,s}} \geq {0\text{:}}}{Z_{2,s} = {i - {a_{{\# k},2,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}}} & \left( {{{Math}.\mspace{14mu} 314}\text{-}2\text{-}s\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{2,s}} < {0\text{:}}}{Z_{2,s} = {i - a_{{\# k},2,s} + {M\mspace{11mu} \left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}} \vdots} & \left( {{{Math}.\mspace{14mu} 314}\text{-}2\text{-}s\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{2,{r\; 2}}} \geq {0\text{:}}}{Z_{2,r_{2}} = {i - a_{{\# k},2,_{r_{2}}}}}} & \left( {{{Math}.\mspace{14mu} 314}\text{-}2\text{-}r_{2}\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{2,{r\; 2}}} < {0\text{:}}}{Z_{2,r_{2}} = {i - a_{{\# k},2,_{r_{2}}} + M}}} & \left( {{{Math}.\mspace{14mu} 314}\text{-}2\text{-}r_{2}\text{-}2} \right) \end{matrix}$

The following describes the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme in the present embodiment.

Before the above-mentioned description is made, the parity check matrix for the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme is described first.

For example, in the LDPC-CC based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q defined in Math. 301, the information X₁ and X₂ at time i of the jth block and parity P at time i when tail-biting is performed are respectively represented by X_(j,1,i), X_(j,2,i) and P_(j,1). In order to satisfy Condition #19-1, tail-biting is performed on the assumption that i=1, 2, 3, . . . , q, . . . , q×N−q+1, q×N−q+2, q×N−q+3, . . . , q×N.

Here, the followings hold true: N is a natural number; a transmission sequence (codeword) u_(j) of the jth block is represented by u_(j)=(X_(j,1,1), X_(j,2,1), P_(j,1), X_(j,1,2), X_(j,2,2), P_(j,2), . . . , X_(j,1,k), X_(j,2,k), P_(j,k), . . . , X_(j,1,q×N−1), X_(j,2,q×N−1), P_(j,q×N−1), X_(j,1,q×N), X_(j,2,q×N), P_(j,q×N))^(T); and Hu_(j)=0 (0 in Hu_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is 0 for all the values of k (k is an integer equal to or greater than one and equal to or less than q×N). H is the LDPC-CC parity check matrix based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q when tail-biting is performed.

The following describes the configuration of the LDPC-CC parity check matrix based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q when tail-biting is performed, with use of FIGS. 129 and 130.

Assuming a sub-matrix (vector) corresponding to Math. 301 to be H_(g), the gth sub-matrix can be represented as shown in Math. 302 as described above.

Among the LDPC-CC parity check matrices that correspond to the transmission sequence u_(j) defined above and are based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q when tail-biting is performed, the parity check matrix in the vicinity of time q×N are represented by FIG. 129. As shown in FIG. 129, in the parity check matrix H, a configuration is employed in which a sub-matrix is shifted three columns to the right between the ith row and (i+1)th row (see FIG. 129).

In FIG. 129, a reference sign 12901 indicates the (q×N)th (i.e., last) row of the parity check matrix, which corresponds to the parity check polynomial satisfying the (q−1)th zero as it satisfies Condition #19-1. A reference sign 12902 indicates the (q×N−1)th row of the parity check matrix, which corresponds to the parity check polynomial satisfying the (q−2)th zero as it satisfies Condition #19-1. A reference sign 12903 indicates a column group corresponding to time q×N. Columns in the column group 12903 are arranged in the order of X_(j,1,q×N), X_(j,2,q×N) and P_(j,q×N). A reference sign 12904 indicates a column group corresponding to time q×N−1. Columns in the column group 12904 are arranged in the order of X_(j,1,q×N−1), X_(j,2,q×N−1) and P_(j,q×N−1)

Among the parity check matrices corresponding to u_(j)=( . . . , X_(j,1,q×N−1), X_(j,2,q×N−1), P_(j,q×N−1), X_(j,1,q×N), X_(j,2,q×N), P_(j,q×N), X_(j,1,1), X_(j,2,1), P_(j,1), X_(j,1,2), X_(j,2,2), P_(j,2), . . . )^(T), the parity check matrix in the vicinity of time q×N−1, q×N, 1, 2 is shown in FIG. 130 by reordering elements of the transmission sequence. In this case, a portion of the parity check matrix shown in FIG. 130 is a characteristic portion when tail-biting is performed. As shown in FIG. 130, in the parity check matrix H, a configuration is employed in which a sub-matrix is shifted three columns to the right between the ith row and (i+1)th row (see FIG. 130).

In FIG. 130, when the parity check matrix is represented as shown in FIG. 129, a reference sign 13005 indicates a column corresponding to the (q×N×3)th column and a reference sign 13006 indicates a column corresponding to the first column.

A reference sign 13007 indicates a column group corresponding to time q×N−1. Columns in the column group 13007 are arranged in the order of X_(j,1,q×N−1), X_(j,2,q×N−1) and P_(j,q×N−1). A reference sign 13008 indicates a column group corresponding to time q×N. Columns in the column group 13008 are arranged in the order of X_(j,1,q×N), X_(j,2,q×N) and P_(j,q×N). A reference sign 13009 indicates a column group corresponding to time 1. Columns in the column group 13009 are arranged in the order of X_(j,1,1), X_(j,2,1), P_(j,1). A reference sign 13010 indicates a column group corresponding to time 2. Columns in the column group 13010 are arranged in the order of X_(j,1,2), X_(j,2,2), P_(j,2.)

When the parity check matrix is represented as shown in FIG. 129, a reference sign 13011 indicates a row corresponding to the (q×N)th row and a reference sign 13012 indicates a row corresponding to the first row. The characteristic portion of the parity check matrix when tail-biting is performed is a portion of the parity check matrix that is on the left-hand side of the reference sign 13013 and lower than the reference sigh 13014 in FIG. 130.

When the parity check matrix is represented as shown in FIG. 129, if Condition #19-1 is satisfied, the parity check matrix starts with the row corresponding to the parity check polynomial satisfying the 0th zero and ends with the row corresponding to the parity check polynomial satisfying the (q−1)th zero. This is important to achieve high error-correction capability. In the time-varying LDPC-CC, a code is actually designed so that the number of cycles of short length is small in the Tanner graph. As is evident from FIG. 130, in order to reduce the number of cycles of short length in the Tanner graph when tail-biting is performed, it is important to ensure the situation as shown in FIG. 130. That is to say, Condition #19-1 is an important requirement.

For the sake of simplicity, the parity check matrix when tail-biting is performed in the LDPC-CC based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q, and defined in Math. 301 has been described above. The parity check matrix, however, is generated in a similar manner when tail-biting is performed in the LDPC-CC based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q, and defined in Math. 299.

This concludes the configuration method of the parity check matrix when tail-biting is performed in the LDPC-CC that is based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q, and defined in Math. 301. The following describes the parity check matrix that is equivalent to the parity check matrix when tail-biting is performed in the LDPC-CC that is based on the above-mentioned parity check polynomial of a coding rate of ⅔ and a time-varying period of q in order to explain the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme in the present embodiment.

Described above is the configuration of the parity check matrix H when tail-biting is performed in the LDPC-CC that is based on parity check polynomial of a coding rate of ⅔ and a time-varying period of q, where a transmission sequence u_(j) of the jth block is represented by u_(j)=(X_(j,1,1), X_(j,2,1), P_(j,1), X_(j,1,2), X_(j,2,2), P_(j,2), . . . , X_(j,1,k), X_(j,2,k), P_(j,k), . . . , X_(j,1,q×N−1), X_(j,2,q×N−1), P_(j,q×N−1), X_(j,1,q×N), X_(j,2,q×N), P_(j,q×N))^(T) and Hu_(j)=0 (0 in Hu_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is 0 for all the values of k (k is an integer equal to or greater than one and equal to or less than q×N) holds true. The following describes the configuration of the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC that is based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q, where a transmission sequence s_(j) of the jth block is represented by s_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,q×N), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,q×N), P_(j,1), P_(j,2), . . . , P_(j,k), . . . , P_(j,q×N))^(T) and H_(m)s_(j)=0 (0 in H_(m)s_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is 0 for all the values of k (k is an integer equal to or greater than one and equal to or less than q×N) holds true. Assuming that the number of bits of information X₁ in one block, the number of bits of information X₂ in one block and a parity bit P when tail-biting is performed are each M bits, the parity check matrix when tail-biting is performed in the LDPC-CC based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q is represented by H_(m)=[H_(x,1), H_(x,2), H_(p) ], as shown in FIG. 131 (as described above, although high error-correction capability is achieved if the number of bits of information X₁ in one block, the number of bits of information X₂ in one block and a parity bit P are each M=q×N bits, the number of bits are not limited to M=q×N bits). Since a transmission sequence (codeword) s_(j) of the jth block is represented by s_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,q×N), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,q×N), . . . , P_(j,1), P_(j,2), . . . , P_(j,k), . . . , P_(j,q×N))^(T), H_(x,1), H_(x,2) and H, are respectively the partial matrix relating to the information X₁, the partial matrix relating to the information X₂ and the partial matrix relating to the parity P. As shown in FIG. 131, the parity check matrix H_(m) is a matrix with M rows and 3×M columns. The partial matrix H₁₁ relating to the information X₁, the partial matrix H_(x,2) relating to the information X₂ and the partial matrix H_(p) relating to the parity P are each a matrix with M rows and M columns (in this case, H_(m)s_(j)=0 (0 in H_(m)s_(j)=0 here indicates that all elements of the vector are zeros) holds true).

FIG. 95 shows the configuration of the partial matrix H_(p) relating to the parity P in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q. As shown in FIG. 95, an element in the ith row and the ith column (where i is an integer equal to or greater than one and equal to or less than M. (i=1, 2, 3, . . . , M−1, M)) of the partial matrix H_(p) relating to the parity P is one and the other elements are each zero.

The above-mentioned description is expressed in another way. The element in the ith row and the jth column of the partial matrix H_(p) relating to the parity P in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q is assumed to be represented by H_(p,comp)[i][j](where i and j are each an integer equal to or greater than one and equal to or less than M. (i, j=1, 2, 3, . . . , M−1, M)). The following Math holds true.

[Math. 315]

H _(p,comp) [i][i]=1 for ∀i;i=1,2,3, . . . ,M−1,M  (Math. 315)

where i s an integer equal to or greater than 1 and equal to or less than M (i=1, 2, 3, . . . , M−1, M), and the above expression holds true for all values of i that satisfy this condition.

[Math. 316]

H _(p,comp) [i][j]=0 for ∀i∀j;i≠j;i,j=1,2,3, . . . ,M−1,M  (Math. 316)

where i and j are each an integer equal to or greater than 1 and equal to or less than M (i; j=1, 2, 3, . . . , M−1, M), i≠j, and the above expression holds true for all values of i and j that satisfy this condition.

As shown in FIG. 95, in the partial matrix H_(p) relating to the parity P in FIG. 95, the first row is vector of a part of the 0th (i.e. g=0) parity check polynomial relating to the parity P among the parity check polynomials satisfying zero (Math. 299 or Math. 301) in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q. The second row is vector of a part of the first (i.e. g=1) parity check polynomial relating to the parity P among the parity check polynomials satisfying zero (Math. 299 or Math. 301) in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q . . . The (q+11)th row is vector of a part of the qth (i.e. g=q) parity check polynomial relating to the parity P among the parity check polynomials satisfying zero (Math. 299 or Math. 301) in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q. The (q+2)th row is vector of a part of the 0th (i.e. g=0) parity check polynomial relating to the parity P among the parity check polynomials satisfying zero (Math. 299 or Math. 301) in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q . . . .

FIG. 119 shows the configuration of the partial matrix H_(x,z) (z is an integer equal to or greater than one and equal to or less than two) relating to the information X_(z) in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q. The following describes the configuration of the partial matrix H_(x,z) relating to the information X_(z) by taking, an example, a case where the parity check polynomial satisfying zero satisfies Math. 301 in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q. As shown in FIG. 119, in the partial matrix H_(x,z) relating to the information X_(z) in FIG. 119, the first row is vector of a part of the 0th (i.e. g=0) parity check polynomial relating to the information X_(z) among the parity check polynomials satisfying zero (Math. 299 or Math. 301) in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q. The second row is vector of a part of the first (i.e. g=1) parity check polynomial relating to the information X_(z) among the parity check polynomials satisfying zero (Math. 299 or Math. 301) in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q . . . The (q+1)th row is vector of a part of the qth (i.e. g=q) parity check polynomial relating to the information X_(z) among the parity check polynomials satisfying zero (Math. 299 or Math. 301) in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q. The (q+2)th row is vector of a part of the 0th (i.e. g=0) parity check polynomial relating to the information X_(z) among the parity check polynomials satisfying zero (Math. 299 or Math. 301) in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q . . . Therefore, assuming that (s−1)%q=k (% represents the modulo operator), the sth row of the partial matrix H_(x,z) relating to the information X_(z) in FIG. 119 is vector of a part of the kth parity check polynomial relating to the information X_(z) among the parity check polynomials satisfying zero (Math. 299 or Math. 301) in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q.

The following describes a value of each element of the partial matrix H_(x), relating to the information X_(z) in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q.

The element in the ith row and the jth column of the partial matrix H_(x,1) relating to the information X₁ in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q is assumed to be represented by H_(x,1,comp)[i][i] (where i and j are each an integer equal to or greater than one and equal to or less than M. (i, j=1, 2, 3, . . . , M−1, M)). When the parity check polynomial satisfying zero satisfies Math. 301 in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q, assuming that (s−1)%q=k (% represents the modulo operator) in the sth row of the partial matrix H_(x,1) relating to the information X₁, the parity check polynomial corresponding to the sth row of the partial matrix H_(x,1) relating to the information X₁ is represented as shown below.

[Math. 317]

(D ^(a#k,1,1) +D ^(a#k,1,2) + . . . +D ^(a#k,1,) r1+1)X ₁(D)+(D ^(a#k,2,1) +D ^(a#k,2,2) + . . . +D ^(a#k,2,) r2+1)X ₂(D)+P(D)=0  (Math. 317)

Therefore, when the element satisfies one in the sth row of the partial matrix H_(x), relating to the information X₁, the following Math holds true.

[Math. 318]

H _(x,1,comp) [s][s]=1  (Math. 318)

Furthermore, the following Math holds true.

[Math. 319]

When s−a_(#k,1),y≧1:

H _(x,1,comp) [s][s−a _(#k,1,y)]=1  (Math. 319-1)

When s−a_(#k,1,y)<1:

H _(x,1,comp) [s][s−a _(#k,1,y) +M]=1  (Math. 319-2)

(where y=1, 2, . . . , r₁-1, r₁)

Elements other than Math. 318, Math. 319-1 and Math. 319-2 in H_(x,1,comp)[s][j] in the sth row of the partial matrix H_(x,1) relating to the information X₁ are each zero. This is because Math. 318 is an element corresponding to D⁰X₁(D) (=X₁(D)) in Math. 317 (corresponding to a diagonal element one in a matrix in FIG. 119), and the partial matrix H_(x), relating to the information X₁ has the first to Mth rows and the first to Mth columns in the classification shown in Math. 319-1 and Math. 319-2. Similarly, when the parity check polynomial satisfying zero satisfies Math. 301 in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q, assuming that (s−1)%q=k (% represents the modulo operator) in the sth row of the partial matrix H_(x,2) relating to the information X₂, the parity check polynomial corresponding to the sth row of the partial matrix H_(x,2) relating to the information X₂ is represented as shown in Math. 317. Therefore, when the element satisfies one in the sth row of the partial matrix H_(x,2) relating to the information X₂, the following Math holds true.

[Math. 320]

H _(x,2,comp) [s][s]=1  (Math. 320)

Furthermore, the following Math holds true.

[Math. 321]

When s−a_(#k,2,y)≧1:

H _(x,2,comp) [s][s−a _(#k,2,y)]=1  (Math. 321-1)

When s−a_(#k,2,y)<1:

H _(x,2,comp) [s][s−a _(#k,2,y) +M]=1  (Math. 321-2)

(where y=1, 2, . . . , r₂-1, r₂)

Elements other than Math. 320, Math. 321-1 and Math. 321-2 in H_(x,2,comp)[s][j] in the sth row of the partial matrix H_(x,2) relating to the information X₂ are each zero. This is because Math. 320 is an element corresponding to D⁰X₂(D) (=X₂(D)) in Math. 317 (corresponding to a diagonal element one in a matrix in FIG. 119), and the partial matrix H_(x,2) relating to the information X₂ has the first to Mth rows and the first to Mth columns in the classification shown in Math. 321-1 and Math. 321-2.

The configuration of the parity check matrix when the parity check polynomial satisfies Math. 301 is described above. The following describes the parity check matrix when the parity check polynomial satisfying zero satisfies Math. 299 in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q.

When the parity check polynomial satisfying zero satisfies Math. 299, the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q is as shown in FIG. 131 as described above. In this case, the configuration of the partial matrix H_(p) relating to the parity P in the parity check matrix H_(m) is represented as shown in FIG. 95 as described above. When the parity check polynomial satisfying zero satisfies Math. 299 in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q, assuming that (s−1)%q=k (% represents the modulo operator) in the sth row of the partial matrix H_(x,1) relating to the information X₁, the parity check polynomial corresponding to the sth row of the partial matrix H_(x,1) relating to the information X₁ is represented as shown below.

[Math. 322]

(D ^(a#k,1,1) +D ^(a#k,1,2) + . . . +D ^(a#k,1,) r1)X ₁(D)+(D ^(a#k,2,1) +D ^(a#k,2,2) + . . . +D ^(a#k,2,) r2)X ₂(D)+P(D)=0  (Math. 322)

Therefore, when the element satisfies one in the sth row of the partial matrix H_(x,1) relating to the information X₁, the following Math holds true.

[Math. 323]

When s−a_(#k,1,y)≧1:

H _(x,1,comp) [s][s−a _(#k,1,y)]=1  (Math. 323-1)

When s−a_(#k,1,y)<1:

H _(x,1,comp) [s][s−a _(#k,1,y) +M]=1  (Math. 323-2)

(where y=1, 2, . . . , r₁-1, r₁)

Elements other than Math. 323-1 and Math. 323-2 in H_(x,1,comp)[s][j] in the sth row of the partial matrix H_(x,1) relating to the information X₁ are each zero.

Similarly, when the parity check polynomial satisfying zero satisfies Math. 299 in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q, assuming that (s−1)%q=k (% represents the modulo operator) in the sth row of the partial matrix H_(x,2) relating to the information X₂, the parity check polynomial corresponding to the sth row of the partial matrix H_(x,2) relating to the information X₂ is represented as shown in Math. 322. Therefore, when the element satisfies one in the sth row of the partial matrix H_(x,2) relating to the information X₂, the following Math holds true.

[Math. 324]

When s−a_(#k,2,y)≧1:

H _(x,2,comp) [s][s−a _(#k,2,y)]=1  (Math. 324-1)

When s−a_(#k,2,y)<1:

H _(x,2,comp) [s][s−a _(#k,2,y) +M]=1  (Math. 324-2)

(where y=1, 2, . . . , r₂-1, r₂)

Elements other than Math. 324-1 and Math. 324-2 in H_(x,2,comp)[s][j] in the sth row of the partial matrix H_(x,2) relating to the information X₂ are each zero.

The following describes the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme in the present embodiment.

Assuming that the number of bits of information X₁ in one block, the number of bits of information X₂ in one block and a parity bit Pc (parity Pc refers to parity in the concatenated code) are each M bits (because a coding rate is ⅔) in the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme, the information X₁ of M bits of the jth block is represented by X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), the information X₂ of M bits of the jth block is represented by X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), and the parity bit Pc of M bits of the jth block is represented by Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M) (therefore, k=1, 2, 3, . . . , M−1, M). A transmission sequence is represented by v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T). The parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme is represented as shown in FIG. 132. The parity check matrix H_(cm) is also represented by H_(cm)=[H_(cx), H_(cx,2), H_(cp)](in this case, H_(cm)v_(j)=0 holds true. 0 in H_(cm)v_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is 0 for all the values of k (k is an integer equal to or greater than one and equal to or less than M) holds true. (As described above, although high error-correction capability is achieved if the number of bits of information X₁ in one block, the number of bits of information X₂ in one block and the parity bit are each M=q×N (N is a natural number) bits when a time-varying period of the feed-forward LDPC convolutional code that is based on the parity check polynomial used for the above-mentioned concatenated code is q, the number of bits are not limited to M=q×N bits). In this case, H_(cx,1), H_(cx,2) and H_(cp) are respectively the partial matrix relating to the information X₁ of the parity check matrix H_(cm) for the above-mentioned convolutional code, the partial matrix relating to the information X₂ of the parity check matrix H_(cm) for the above-mentioned convolutional code and the partial matrix relating to the parity Pc (parity Pc refers to parity in the concatenated code) of the parity check matrix H_(cm) for the above-mentioned convolutional code. As shown in FIG. 132, the parity check matrix H_(cm) is a matrix with M rows and 3×M columns. The partial matrix H_(cx,1) relating to the information X₁, the partial matrix H_(x,2) relating to the information X₂ and the partial matrix H_(cp) relating to the parity Pc are each a matrix with M rows and M columns.

FIG. 133 illustrates a relation between the partial matrix H_(x)=[H_(x,I) H_(x,2)](13301 in FIG. 133) relating to the information X₁ and X₂ in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC that is based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q, and the partial matrix H_(cx)=[H_(cx,1) H_(cx,2)](13302 in FIG. 133) relating to the information X₁ and X₂ in the parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q.

In this case, the partial matrix H_(x)=[H_(x,1) H_(x,2)](13301 in FIG. 133) is a matrix formed in 13101-1 and 13101-2 in FIG. 131, and is a matrix with M rows and 2×M columns. The partial matrix H_(cx)=[H_(cx,1) H_(cx,2)](13302 in FIG. 133) is a matrix formed in 13201-1 and 13201-2 in FIG. 132, and is a matrix with M rows and 2×M columns.

The configuration of the partial matrix H_(x) relating to the information X₁ and X₂ in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q is as described above. In the partial matrix H_(x) (13301 in FIG. 133) relating to the information X₁ and X₂ in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q, assuming that vector generated by extracting only the first row is h_(x), i, vector generated by extracting only the second row is h_(x,2), vector generated by extracting only the third row is h_(x,3), . . . , vector generated by extracting only the kth row is h_(x,k) (k=1, 2, 3, . . . , M−1, M), . . . , vector generated by extracting only the (M−1)th row is h_(x,M−1), vector generated by extracting only the Mth row is h_(x,M), the partial matrix H_(x) (13301 in FIG. 133) relating to the information X₁ and X₂ in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q is represented as shown in the following Math.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 325} \right\rbrack & \; \\ {H_{x} = \begin{bmatrix} h_{x,1} \\ h_{x,2} \\ \vdots \\ h_{x,{M - 1}} \\ h_{x,M} \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 325} \right) \end{matrix}$

In FIG. 127, the interleaver is positioned after the step of encoding the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme. With this structure, from the partial matrix H_(x) (13301 in FIG. 133) relating to the information X₁ and X₂ in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial of a coding rate of ⅔ and a time-varying period of q, the partial matrix H_(cx)=[H_(cx,1) H_(cx,2)](13302 in FIG. 133) relating to the information X₁ and X₂ when interleaving is performed after encoding the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme, i.e., the partial matrix H_(cx) (13302 in FIG. 133) relating to the information X₁ and X₂ in the parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme is generated.

As shown in FIG. 133, in the partial matrix H_(cx) (13302 in FIG. 133) relating to the information X₁ and X₂ in the parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔, assuming that vector generated by extracting only the first row is h_(cx,1), vector generated by extracting only the second row is hc_(x,2), vector generated by extracting only the third row is hc_(x,3), . . . , vector generated by extracting only the kth row is hc_(x,k) (k=1, 2, 3, . . . , M−1, M), . . . , vector generated by extracting only the (M−1)th row is hc_(x,M−1), vector generated by extracting only the Mth row is hc_(x,M), the partial matrix H_(cx) (13302 in FIG. 133) relating to the information X₁ and X₂ in the parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ is represented as shown in the following Math.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 326} \right\rbrack & \; \\ {H_{cx} = \begin{bmatrix} {hc}_{x,1} \\ {hc}_{x,2} \\ \vdots \\ {hc}_{x,{M - 1}} \\ {hc}_{x,M} \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 326} \right) \end{matrix}$

Vector hc_(x,k) (k=1, 2, 3, . . . , M−1, M) generated by extracting only the kth row of the partial matrix H_(cx) (13302 in FIG. 133) relating to the information X₁ and X₂ of the parity check matrix Hem for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ is represented by any of h_(x), (i=1, 2, 3, . . . , M−1, M) (In other words, h_(x), i (i=1, 2, 3, . . . , M−1, M) is always positioned in any of the vector hc_(x,k) generated by extracting only the kth row by interleaving). In FIG. 133, for example, vector hc_(x), generated by extracting only the first row is represented by hc_(x,1)=h_(x,47), and vector hc_(x,M) generated by extracting only the Mth row is represented by hc_(x,M)=h_(x,21).

The following Math hold true as only interleaving is performed.

[Math. 327]

hc _(x,i) ≠hc _(x,j) for ∀i∀j;i≠j;i,j=1,2,, . . . ,M−2,M−1,M  (Math. 327)

where i and j are each 1, 2, . . . , M−2, M−1, M, i≠j, and the above expression holds true for all values of i and j that satisfy this condition.

Therefore, h_(x,1), h_(x,2), h_(x,3), . . . , h_(x,M−2), h_(x,M−1), h_(x,M) each appear once in ‘ vector hc_(x,k) (k=1, 2, 3, . . . , M−1, M) generated by extracting only the kth row’.

That is to say, there is one value of k that satisfies hc_(x,k)=h_(x,1), there is one value of k that satisfies hc_(x,k)=h_(x,2), there is one value of k that satisfies hc_(x,k)=h_(x,3), . . . , there is one value of k that satisfies hc_(x,k)=h_(x,j), . . . , there is one value of k that satisfies hc_(x,k)=h_(x,M−2), there is one value of k that satisfies hc_(x,k)=h_(x,M−1), there is one value of k that satisfies hc_(x,k)=h_(x,M).

FIG. 99 shows the configuration of the partial matrix H_(cp) relating to the parity Pc (parity Pc refers to parity in the above-mentioned concatenated code) in the parity check matrix H_(cm)=[H_(cx,1), H_(cx,2), H_(cp)] for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔. The partial matrix H_(cp) relating to the parity Pc is a matrix with M rows and M columns. The element in the ith row and the jth column of the partial matrix H_(cp) relating to the parity Pc is assumed to be represented by H_(cp,comp)[i][j](where i and j are each an integer equal to or greater than one and equal to or less than M. (i, j=1, 2, 3, . . . , M−1, M)). The following Math holds true.

[Math. 328]

When i=1:

H _(cp,comp)[1][1]=1  (Math. 328-1)

H _(cp,comp)[1][j]=0 for ∀j;j=2,3, . . . ,M−1,M  (Math. 328-2)

where j is an integer equal to or greater than 2 and equal to or less than M (j=2, 3, . . . , M−1, M), and Math. 328-2 holds true for all values of j that satisfy this condition.

[Math. 329]

When i≠1 (where i is an integer equal to or greater than 2 and equal to or less than M, that is, i=2, 3, . . . , M−1, M.):

H _(cp,comp) [i][i]=1 for ∀i;i=2,3, . . . ,M−1,M  (Math. 329-1)

where i is an integer equal to or greater than 2 and equal to or less than M (i=2, 3, . . . , M−1, M), and Math. 329-1 holds true for all values of i that satisfy this condition.

H _(cp,comp) [i][i−1]=1 for ∀i;i=2,3, . . . ,M−1,M  (Math. 329-2)

where i is an integer equal to or greater than 2 and equal to or less than M (i=2, 3, . . . , M−1, M), and Math. 329-2 holds true for all values of i that satisfy this condition.

H _(cp,comp) [i][j]=0 for ∀i∀j;i≠j;i−1≠j;i=2,3, . . . ,M−1,M;j=1,2,3, . . . M−1,M  (Math. 329-3)

where i is an integer equal to or greater than 2 and equal to or less than M (i=2, 3, . . . , M−1, M), j is an integer equal to or greater than 1 and equal to or less than M (j=1, 2, 3, . . . , M−1, M), {i≠j or i−1≠j}, and Math. 329-3 holds true for all values of i and j that satisfy this condition.

The configuration of the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ has been described with use of FIGS. 99, 132 and 133. The following describes another representation method of the above-mentioned parity check matrix for the concatenated code that is different from that shown in each of FIGS. 99, 132 and 133.

In FIGS. 99, 132 and 133, the parity check matrix, the partial matrix relating to the information in the parity check matrix and the partial matrix relating to the parity in the parity check matrix each corresponding to a transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,1), Pc_(j,2) . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) have been described. As shown in FIG. 134, the following describes the parity check matrix, the partial matrix relating to the information in the parity check matrix and the partial matrix relating to the parity in the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ when a transmission sequence is assumed to be v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T) (by way of example, only a parity sequence is reordered here).

FIG. 134 shows the configuration of the partial matrix H′_(cp) relating to the parity Pc (parity Pc refers to parity in the concatenated code) in the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ when a transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) shown in FIGS. 99, 132 and 133 is reordered so as to be a transmission sequence v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), PC_(j,2), Pc_(j,1))^(T). The partial matrix H′_(cp) relating to the parity Pc is a matrix with M rows and M columns. The element in the ith row and the jth column of the partial matrix H′_(cp) relating to the parity Pc is assumed to be represented by H′_(cp,comp)[i][j](where i and j are each an integer equal to or greater than one and equal to or less than M. (i, j=1, 2, 3, . . . , M−1, M)). The following Math holds true.

[Math. 330]

When i≠M (where i is an integer equal to or greater than 1 and equal to or less than M−1, that is, i=1, 2, . . . , M−1.):

H′ _(cp,comp) [i][i]=1 for ∀i;i=1,2, . . . ,M−1  (Math. 330-1)

where i is an integer equal to or greater than 1 and equal to or less than M−1 (i=1, 2, . . . , M−1), and Math. 330-1 holds true for all values of i that satisfy this condition.

H′ _(cp,comp) [i][i−1]=1 for ∀i;i=1,2, . . . ,M−1  (Math. 330-2)

where i is an integer equal to or greater than 1 and equal to or less than M−1 (i=1, 2, . . . , M−1), and Math. 330-2 holds true for all values of i that satisfy this condition.

H′ _(cp,comp) [i][j]=0 for ∀i∀j;i≠j;i+1≠j;i=1,2, . . . ,M−1;j=1,2,3, . . . ,M−1,M  (Math. 330-3)

where i is an integer equal to or greater than 1 and equal to or less than M−1 (i=1, 2, . . . , M−1), j is an integer equal to or greater than 1 and equal to or less than M (j=1, 2, 3, . . . , M−1, M), {i≠j or i+1≠j}, and Math. 330-3 holds true for all values of i and j that satisfy this condition.

[Math. 331]

When i=M:

H′ _(cp,comp) [M][M]=1 for ∀i;i=1,2, . . . ,M−1  (Math. 331-1)

H′ _(cp,comp) [M][j−1]=0 for ∀j;j=1,2, . . . ,M−1  (Math. 331-2)

where j is an integer equal to or greater than 1 and equal to or less than M−1 (j=1, 2, . . . , M−1), and Math. 331-2 holds true for all values of j that satisfy this condition.

FIG. 135 shows the configuration of the partial matrix H′_(cx) (13502 in FIG. 135) relating to the information X₁ and X₂ in the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ when a transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2) . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) shown in FIGS. 99, 132 and 133 is reordered so as to be a transmission sequence v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,M), Pc_(j, M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T). The partial matrix H′_(cx) relating to the information X₁ and X₂ is a matrix with M rows and 2×M columns. For comparison, the configuration of the partial matrix H_(cx)=[H_(cx,1) H_(cx, 2)](13501 in FIG. 135 and similar to 13302 in FIG. 133) relating to the information X₁ and X₂ when a transmission sequence is represented by v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), P_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) as shown in FIGS. 99, 132 and 133 is also shown.

In FIG. 135, H_(cx) (13501) is the partial matrix relating to the information X₁ and X₂ when a transmission sequence is represented by v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(1,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) as shown in FIGS. 99, 132 and 133, and is the same as H_(cx) shown in FIG. 133. Similar to the description with use of FIG. 133, vector generated by extracting only the kth row of the partial matrix H_(cx) (13501) relating to the information X₁ and X₂ is represented by hc_(x,k) (k=1, 2, 3, . . . , M−1, M).

H′_(cx) (13502) shown in FIG. 135 is the partial matrix relating to the information X₁ and X₂ in the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ when a transmission sequence is represented by v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T). When the vector hc_(x,M), hc_(x) (k=1, 2, 3, . . . , M−1, M) is used, the first, second, . . . , (M−1)th and Mth rows of the partial matrix H′_(cx) (13502) relating to the information X₁ and X₂ are respectively represented by hc_(x,M), hc_(x,M−1), . . . , hc_(x,2), hc_(x,1). That is to say, vector generated by extracting only the kth (k=1, 2, 3, . . . , M−2, M−1, M) row of the partial matrix H′_(cx) (13502) relating to the information X₁ and X₂ is represented by hc_(x,M)-k+₁. The partial matrix H′_(cx) (13502) relating to the information X₁ and X₂ is a matrix with M rows and 2×M columns.

FIG. 136 shows the configuration of the partial matrix H′_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ when a transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) shown in FIGS. 99, 132 and 133 is reordered so as to be a transmission sequence v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(1,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), P_(j,M), Pc_(j,M−1), Pc_(M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T). When the partial matrix H′_(cp) relating to the parity shown in FIG. 134 and the partial matrix H′_(cx) relating to the information X₁ and X₂ shown in FIG. 135 are used, the parity check matrix H′_(cm) is represented by H′_(cm)=[H′_(cx), H′_(cp)]=[H′_(cx,1), H′_(cx,2), H′_(cp)]. As shown in FIG. 136, H′_(cx,k) is the partial matrix relating to information X_(k) (k is an integer equal to or greater than one and equal to or less than two). The parity check matrix H′_(cm) is a matrix with M rows and 3×M columns, and H′_(cm)v′_(j)=0 holds true (0 in H′_(cm)v′_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is 0 for all the values of k (k is an integer equal to or greater than one and equal to or less than M)).

An example of the configuration of the parity check matrix when the transmission sequence is reordered has been described above. The following describes a generalized example of the configuration of the parity check matrix when the transmission sequence is reordered.

The configuration of the parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ has been described with use of FIGS. 99, 132 and 133. In this case, a transmission sequence is represented by v_(j)=(X_(j,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T), and H_(cm)v_(j)=0 holds true (0 in H_(cm)v_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is 0 for all the values of k (k is an integer equal to or greater than one and equal to or less than M)).

The following describes the configuration of the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ when the transmission sequence is reordered.

FIG. 137 shows the parity check matrix for the above-mentioned concatenated code shown in FIG. 132. In this case, although the transmission sequence of the jth block is v_(j)=(X_(j,1,1), X_(j,1,2), X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) as described above, the transmission sequence v_(j) of the jth block is represented by v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))T=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,3M−2), Y_(j,3M−1) Y_(j,3M))^(T). Y_(j,k) here is the information X₁, the information X₂ or the parity Pc (since a generalized example is described here, the information X₁, the information X₂ and the parity Pc are not distinguished from one another). In this case, an element in the kth row of the transmission sequence v_(j) of the jth block (an element in the kth column of a transmission sequence v_(j) ^(T), which is a transpose of the transmission sequence v_(j), in FIG. 137) is Y_(j,k) (k is an integer equal to or greater than one and equal to or less than 3×M). Vector generated by extracting the kth row of the parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ is represented by c_(k) as shown in FIG. 137. In this case, the parity check matrix H_(cm) for the above-mentioned concatenated code is represented as shown below.

[Math. 332]

H _(cm) =[c ₁ c ₂ C ₃ . . . C_(3M−2) C _(3M−1) C _(3M])  (Math. 332)

The following describes the configuration of the parity check matrix for the above-mentioned concatenated code when elements of the transmission sequence v_(j) of the above-mentioned jth block are reordered with respect to the transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,3M−2), Y_(j,3M−1), Y_(j,3M))^(T), with use of FIG. 138. Considered as an example is the parity check matrix when elements of the transmission sequence v_(j) of the above-mentioned jth block are reordered with respect to the transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,1), P_(j,2), . . . , PC_(j,k), . . . , Pc_(j,M))^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,3M−2), Y_(j,3M−1), Y_(j,3M))^(T) so that a transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) as shown in FIG. 138. As described above, a transmission sequence obtained by reordering elements of the transmission sequence v_(j) of the jth block is the transmission sequence v′_(j). Therefore, v′_(j) is vector with one row and 3×M columns. Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,3M−2), Y_(j,3M−1), Y_(j,3M) each appear once in 3×M elements of v′_(j).

FIG. 138 shows the configuration of the parity check matrix H′_(cm) when the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). In this case, an element in the first row of the transmission sequence v′_(j) of the jth block (an element in the first column of a transmission sequence v′_(j) ^(T), which is a transpose of the transmission sequence v′_(j), in FIG. 138) is Y_(j,32). Therefore, when the above-mentioned vector c_(k) (k=1, 2, 3, . . . , 3×M−2,3×M−1,3×M) is used, vector generated by extracting the first column of the parity check matrix H′_(cm) is c₃₂. Similarly, an element in the second row of the transmission sequence v′_(j) of the jth block (an element in the second column of the transmission sequence v′_(j) ^(T), which is a transpose of the transmission sequence v′_(j), in FIG. 138) is Y_(j,99). Therefore, vector generated by extracting the second column of the parity check matrix H′_(cm) is c₉₉. According to FIG. 138, vector generated by extracting the third column of the parity check matrix H′_(cm) is c₂₃, vector generated by extracting the (3×M−2)th column of the parity check matrix H′_(cm) is c₂₃₄, vector generated by extracting the (3×M−1)th column of the parity check matrix H′_(cm) is c₃, and vector generated by extracting the (3×M)th column of the parity check matrix H′_(cm) is c₄₃

That is to say, when an element in the ith row of the transmission sequence v′_(j) of the jth block (an element in the ith column of the transmission sequence v′_(j) ^(T), which is a transpose of the transmission sequence v′_(j), in FIG. 138) is represented by Y_(j,g) (g=1, 2, 3, . . . , 3×M−2,3×M−1,3×M), vector generated by extracting the ith column of the parity check matrix H′_(cm) is c_(g), if the above-mentioned vector c_(k) is used.

Therefore, the parity check matrix H′_(cm) when the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) is represented as shown below.

[Math. 333]

H′_(cm)=[c₃₂ c₉₉ c₂₃ . . . c₂₃₄ c₃ c_(43](Math.) 333)

If the parity check matrix is created according to the rule under which when an element in the ith row of the transmission sequence v′_(j) of the jth block (an element in the ith column of the transmission sequence v′_(j) ^(T), which is a transpose of the transmission sequence v′_(j), in FIG. 138) is represented by Y_(j,g) (g=1, 2, 3, . . . , 3×M−2,3×M−1,3×M), vector generated by extracting the ith column of the parity check matrix H′_(cm) is c_(g), if the above-mentioned vector c_(k) is used, the parity check matrix for the transmission sequence v′_(j) of the jth block other than that shown in the above-mentioned example is obtained. The following describes the above-mentioned interpretation. General description of reordering of elements of the transmission sequence (codeword) is made first. FIG. 105 shows the configuration of the parity check matrix H for the LDPC (block) code of a coding rate of (N−M)/N(N>M>0). The parity check matrix shown in FIG. 105 is, for example, a matrix with M rows and N columns. In FIG. 105, a transmission sequence (codeword) v_(j) ^(T) of the jth block is represented by v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)) (in the case of a systematic code, Y_(j,k) (k is an integer equal to or greater than one and equal to or less than N) is the information X or the parity P). In this case, Hv_(j)=0 holds true (0 in Hv_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is 0 for all the values of k (k is an integer equal to or greater than one and equal to or less than M)). In this case, an element in the kth row (k is an integer equal to or greater than one and equal to or less than N) of the transmission sequence v_(j) of the jth block (an element in the kth column of a transmission sequence v_(j) ^(T), which is a transpose of the transmission sequence v_(j), in FIG. 105) is Y_(j,k). Vector generated by extracting the kth column of the parity check matrix H for the LDPC (block) code of a coding rate of (N−M)/N (N>M>0) is represented by c_(k) as shown in FIG. 105). In this case, the parity check matrix H for the LDPC (block) code is represented as shown below.

[Math. 334]

H=[c ₁ c ₂ c ₃ . . . c _(N−2) c _(N−1) c _(N)]  (Math. 334)

FIG. 106 shows the configuration when interleaving is performed on the transmission sequence (codeword) of the jth block v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)) In FIG. 106, the encoding section 10602 receives information 10601 as input, performs coding thereon, and outputs coded data 10603. When coding of the LDPC (block) code of a coding rate of (N−M)/N(N>M>0) shown in FIG. 106 is performed, the encoding section 10602 receives information of the jth block as input, performs coding thereon based on the parity check matrix H for the LDPC (block) code of a coding rate of (N−M)/N(N>M>0) shown in FIG. 105, and outputs the transmission sequence (codeword) of the jth block v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)).

Then, the accumulation and reordering section (interleaving section) 10604 receives the encoded data 10603 as input, accumulates the encoded data 10603, performs reordering thereon, and outputs the interleaved data 10605. Accordingly, the accumulation and reordering section (interleaving section) 10604 receives the transmission sequence v_(j) of the jth block v_(j)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N))^(T) as input, reorders elements of the transmission sequence v_(j), and outputs the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) as shown in FIG. 106. As described above, a transmission sequence obtained by reordering elements of the transmission sequence v_(j) of the jth block is the transmission sequence v′_(j). Therefore, v′_(j) is vector with one row and N columns. Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N) each appear once in N elements of v′_(j).

Considered is an encoding section 10607 that has functions of the encoding section 10602 and the accumulation and reordering section (interleaving section) 10604 as shown in FIG. 106. Accordingly, the encoding section 10607 receives information 10601 as input, performs coding thereon, and outputs coded data 10603. For example, the encoding section 10607 receives information of the jth block as input, and outputs a transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) as shown in FIG. 106. The following describes the parity check matrix H′ for the LDPC (block) code of a coding rate of (N−M)/N(N>M>0), which corresponds to the encoding section 10607 in this case, with use of FIG. 107.

FIG. 107 shows the configuration of the parity check matrix H′ when the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) In this case, an element in the first row of the transmission sequence v′_(j) of the jth block (an element in the first column of a transmission sequence v′_(j)T, which is a transpose of the transmission sequence v′_(j), in FIG. 107) is Y_(j,32). Therefore, when the above-mentioned vector c_(k) (k=1, 2, 3, . . . , N−2, N−1, N) is used, vector generated by extracting the first column of the parity check matrix H′ is c₃₂. Similarly, an element in the second row of the transmission sequence v′_(j) of the jth block (an element in the second column of the transmission sequence v′_(j) ^(T), which is a transpose of the transmission sequence v′_(j), in FIG. 107) is Y_(j,99). Therefore, vector generated by extracting the second column of the parity check matrix H′ is c₉₉. According to FIG. 107, vector generated by extracting the third column of the parity check matrix H′ is c₂₃, vector generated by extracting the (N−2)th column of the parity check matrix H′ is c₂₃₄, vector generated by extracting the (N−1)th column of the parity check matrix H′ is c₃, and vector generated by extracting the Nth column of the parity check matrix H′ is c₄₃. That is to say, when an element in the ith row of the transmission sequence v′_(j) of the jth block (an element in the ith column of the transmission sequence v′_(j) ^(T), which is a transpose of the transmission sequence v′_(j), in FIG. 107) is represented by Y_(j,g) (g=1, 2, 3, . . . , N−2, N−1, N), vector generated by extracting the ith column of the parity check matrix H′ is c_(g), if the above-mentioned vector C_(k) is used.

Therefore, the parity check matrix H′ when the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) is represented as shown below.

[Math. 335]

H′=[c ₃₂ c ₉₉ c ₂₃ . . . c ₂₃₄ c ₃ c ₄₃]  (Math. 335)

If the parity check matrix is created according to the rule under which when an element in the ith row of the transmission sequence v′_(j) of the jth block (an element in the ith column of the transmission sequence v′_(j) ^(T), which is a transpose of the transmission sequence v′_(j), in FIG. 107) is represented by Y_(j,g) (g=1, 2, 3, . . . , N−2, N−1, N), vector generated by extracting the ith column of the parity check matrix H′ is c_(g), if the above-mentioned vector c_(k) is used, the parity check matrix for the transmission sequence v′_(j) of the jth block other than that shown in the above-mentioned example is obtained.

Accordingly, when interleaving is performed on the transmission sequence (codeword) for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔, as described above, the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ on which a column replacement has been performed is the parity check matrix for the transmission sequence (codeword) on which interleaving has been performed. Accordingly, when elements of the transmission sequence (codeword) on which interleaving has been performed are returned to an original order, the above-described transmission sequence (codeword) for the concatenated code is naturally obtained. The parity check matrix thereof is the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔.

FIG. 108 shows an example of the configuration relating to decoding in a receiving device, when the encoding shown in FIG. 106 has been performed. Mapping, frequency conversion, modulated signal amplification and similar processing are performed in accordance with a modulation method with respect to the transmission sequence when the encoding shown in FIG. 106 has been performed to obtain a modulated signal. A transmitting device transmits the modulated signal. The receiving device then receives the modulated signal transmitted by the transmitting device to obtain a received signal. A bit log-likelihood ratio calculation section 10800 shown in FIG. 108 receives the received signal as input, calculates the log-likelihood ratio for each bit of the codeword, and outputs a log-likelihood ratio signal 10801. The operations of the transmitting device and the receiving device are described in Embodiment 15 with reference to FIG. 76.

For example, the transmitting device transmits a transmission sequence (codeword) of the jth block v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). Then, the bit log-likelihood ratio calculation section 10800 calculates the log-likelihood ratio for Y_(j,32), the log-likelihood ratio for Y_(j,99), the log-likelihood ratio for Y_(j,23), . . . , the log-likelihood ratio for Y_(j,234), the log-likelihood ratio for Y_(j,3), and the log-likelihood ratio for Y_(j,43) from the received signal, and outputs the log-likelihood ratios.

An accumulation and reordering section (deinterleaving section) 10802 receives the log-likelihood ratio signal 10801 as input, performs accumulation and reordering thereon, and outputs a deinterleaved log-likelihood ratio signal 10803.

For example, the accumulation and reordering section (deinterleaving section) 10802 receives the log-likelihood ratio for Y_(j,32), the log-likelihood ratio for Y_(j,99), the log-likelihood ratio for Y_(j,23), . . . , the log-likelihood ratio for Y_(j,234), the log-likelihood ratio for Y_(j,3), and the log-likelihood ratio for Y_(j,43) as input, performs reordering, and outputs the log-likelihood ratios in the order of: the log-likelihood ratio for Y_(j,1), the log-likelihood ratio for Y_(j,2), the log-likelihood ratio for Y_(j,3), . . . , the log-likelihood ratio for Y_(j,N−2), the log-likelihood ratio for Y_(j,N−1), and the log-likelihood ratio for Y_(j,N).

A decoder 10604 receives the deinterleaved log-likelihood ratio signal 1803 as input, performs belief propagation decoding, such as the BP decoding, sum-product decoding, min-sum decoding, offset BP decoding, Normalized BP decoding, Shuffled BP decoding, and Layered BP decoding in which scheduling is performed as disclosed in Non-Patent Literature 4 to 6, based on the parity check matrix H for the LDPC (block) code of a coding rate of (N−M)/N(N>M>0) as shown in FIG. 105 to obtain an estimated sequence 10805.

For example, the decoder 10604 receives the log-likelihood ratio for Y_(j,1), the log-likelihood ratio for Y_(j,2), the log-likelihood ratio for Y_(j,3), . . . , the log-likelihood ratio for Y_(j,N−2), the log-likelihood ratio for Y_(j,N−1), and the log-likelihood ratio for Y_(j,N) in this order as input, performs belief propagation decoding based on the parity check matrix H for the LDPC (block) code of a coding rate of (N−M)/N(N>M>0) as shown in FIG. 105 to obtain the estimated sequence.

The configuration relating to decoding that is different from that described above is described next. The configuration described here is different from that described above in that the accumulation and reordering section (deinterleaving section) 10802 is omitted. The operations of the bit log-likelihood ratio calculation section 10800 are identical to those described above, and thus the description thereof is omitted here. For example, the transmitting device transmits a transmission sequence (codeword) of the jth block v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . Y_(j,234), Y_(j,3), Y_(j,43))T Then, the bit log-likelihood ratio calculation section 10800 calculates the log-likelihood ratio for Y_(j,32), the log-likelihood ratio for Y_(j,99), the log-likelihood ratio for Y_(j,23), . . . , the log-likelihood ratio for Y_(j,234), the log-likelihood ratio for Y_(1,3), and the log-likelihood ratio for Y_(1,43) from the received signal, and outputs the log-likelihood ratios (corresponding to 10806 shown in FIG. 108).

A decoder 10607 receives the bit log-likelihood ratio signal 1806 as input, performs belief propagation decoding, such as the BP decoding, sum-product decoding, min-sum decoding, offset BP decoding, Normalized BP decoding, Shuffled BP decoding, and Layered BP decoding in which scheduling is performed as disclosed in Non-Patent Literature 4 to 6, based on the parity check matrix H′ for the LDPC (block) code of a coding rate of (N−M)/N(N>M>0) as shown in FIG. 107 to obtain an estimated sequence 10809.

For example, the decoder 10607 receives the log-likelihood ratio for Y_(j,32), the log-likelihood ratio for Y_(j,99), the log-likelihood ratio for Y_(j,23), . . . , the log-likelihood ratio for Y_(j,234), the log-likelihood ratio for Y_(j,3), and the log-likelihood ratio for Y_(j,43) in this order as input, performs belief propagation decoding based on the parity check matrix H for the LDPC (block) code of a coding rate of (N−M)/N (N>M>0) as shown in FIG. 107 to obtain the estimated sequence.

As described above, even when the transmitting device performs interleaving on the transmission sequence v_(j) of the jth block v_(j)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N))^(T) and transmits reordered data pieces, the receiving device can obtain the estimated sequence by using the parity check matrix corresponding to the reordering. Accordingly, when interleaving is performed on the transmission sequence (codeword) for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔, as described above, the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ on which a column replacement has been performed is the parity check matrix for the transmission sequence (codeword) on which interleaving has been performed. By using the parity check matrix for the transmission sequence (codeword) on which interleaving has been performed, the receiving device can perform belief propagation decoding without performing deinterleaving on the log-likelihood ratio for each acquired bit to obtain the estimated sequence.

The relation between interleaving on the transmission sequence and the parity check matrix has been described above. The following describes row replacement performed on the parity check matrix.

FIG. 109 shows the configuration of the parity check matrix H corresponding to the transmission sequence (codeword) v^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), Y_(j,N−2), Y_(j,N−1), Y_(j,N)) of the jth block for the LDPC (block) code of a coding rate of (N−M)/N (in the case of a systematic code, Y_(j,k) (k is an integer equal to or greater than one and equal to or less than N).is the information X or the parity P. Y_(j,k) is made up of N-M information pieces and M parities). In this case, Hv_(j)=0 holds true (0 in Hv_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is 0 for all the values of k (k is an integer equal to or greater than one and equal to or less than M)). Vector generated by extracting the kth row (k is an integer equal to or greater than one and equal to or less than M) of the parity check matrix H shown in FIG. 109 is represented by z_(k). In this case, the parity check matrix H for the LDPC (block) code is represented as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 336} \right\rbrack & \; \\ {H = \begin{bmatrix} z_{1} \\ z_{2} \\ \vdots \\ z_{M - 1} \\ z_{M} \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 336} \right) \end{matrix}$

Considered next is a parity check matrix obtained by performing row replacement on the parity check matrix H shown in FIG. 109. FIG. 110 shows an example of a parity check matrix H′ obtained by performing row replacement on the parity check matrix H. The parity check matrix H′ is, similarly to that shown in FIG. 109, a parity check matrix corresponding to the transmission sequence (codeword) v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)) of the jth block for the LDPC (block) code of a coding rate of (N−M)/N. The parity check matrix H′shown in FIG. 110 is made up of vectors z_(k) generated by extracting the kth row (k is an integer equal to or greater than one and equal to or less than M) of the parity check matrix H shown in FIG. 109. By way of example, the first, second, third, . . . , (M−2)th, (M−1)th and Mth rows of the parity check matrix H′ are respectively composed of z₁₃₀, z₂₄, z₄₅, . . . , z₃₃, z₉, and z₃. Here, z₁, z₂, z₃, . . . , z_(M−2), z_(M−1), z_(M) each appear once in M row vectors generated by extracting the kth row (k is an integer equal to or greater than one and equal to or less than M) of the parity check matrix H′. In this case, the parity check matrix H′ for the LDPC (block) code is represented as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 337} \right\rbrack & \; \\ {H^{\prime} = \begin{bmatrix} z_{130} \\ z_{24} \\ \vdots \\ z_{9} \\ z_{3} \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 337} \right) \end{matrix}$

In this case, H′v=0 holds true (0 in Hv_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is 0 for all the values of k (k is an integer equal to or greater than one and equal to or less than M)). That is to say, in the case of the transmission sequence v_(j) ^(T) of the jth block, vector generated by extracting the ith column of the parity check matrix H′ is represented by any of vectors c_(k) (k is an integer equal to or greater than one and equal to or less than M), and z₁, z₂, z₃, . . . , z_(M−2), z_(M−1), z_(M) each appear once in M row vectors generated by extracting the kth row (k is an integer equal to or greater than one and equal to or less than M) of the parity check matrix H′. If the parity check matrix is created according to the rule under which in the case of the transmission sequence v_(j) ^(T) of the jth block, vector generated by extracting the ith column of the parity check matrix H′ is represented by any of vectors c_(k) (k is an integer equal to or greater than one and equal to or less than M), and z₁, z₂, z₃, . . . , z_(M−2), z_(M−1), z_(M) each appear once in M row vectors generated by extracting the kth row (k is an integer equal to or greater than one and equal to or less than M) of the parity check matrix H′, the parity check matrix for the transmission sequence v_(j) of the jth block other than that shown in the above-mentioned example is obtained. Accordingly, when the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ is used, the parity check matrix described with use of FIGS. 131 through 136 is not necessarily used. As described above, a parity check matrix obtained by performing column replacement or row replacement on the parity check matrix shown in FIGS. 132 and 136 may be used.

The following describes the concatenated code concatenating the accumulator, via the interleaver, shown in FIGS. 89 and 90 with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme.

Assuming that the number of bits of information X₁ in one block, the number of bits of information X₂ in one block and a parity bit (Pc, parity Pc refers to parity in the concatenated code) are each M bits (because a coding rate is ⅔) in the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme, the information X₁ of M bits of the jth block is represented by X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), the information X₂ of M bits of the jth block is represented by X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), and the parity bit Pc of M bits of the jth block is represented by Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j, M (therefore, k=)1, 2, 3, . . . , M−1, M). A transmission sequence is represented by v_(j)=(X_(j,1,1), X_(j,1,2), X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T). The parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme is represented as shown in FIG. 132. The parity check matrix H_(cm) is also represented by H_(cm)=[H_(cx,1), H_(cx,2), H_(cp)](in this case, H_(cm)v_(j)=0 holds true. 0 in H_(cm)v_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is 0 for all the values of k (k is an integer equal to or greater than one and equal to or less than M)). In this case, H_(cx,1), H_(x,2) and H_(cp) are respectively the partial matrix relating to the information X₁ of the parity check matrix H_(cm) for the above-mentioned convolutional code, the partial matrix relating to the information X₂ of the parity check matrix H_(cm) for the above-mentioned convolutional code and the partial matrix relating to the parity Pc (parity Pc refers to parity in the concatenated code) of the parity check matrix H_(cm) for the above-mentioned convolutional code. As shown in FIG. 132, the parity check matrix H_(cm) is a matrix with M rows and 3×M columns. The partial matrix H_(cx,1) relating to the information X₁, the partial matrix H_(cx,2) relating to the information X₂ and the partial matrix H_(cp) relating to the parity Pc are each a matrix with M rows and M columns. The configuration of the partial matrix H_(cx) relating to the information X₁ and X₂ is as described above with use of FIG. 133. Accordingly, only the configuration of the partial matrix H_(cp) relating to the parity Pc is described below.

FIG. 111 shows an example of the configuration of the partial matrix H_(cp) relating to the parity Pc when the accumulator shown in FIG. 89 is applied. Assuming that an element in the ith row and the jth column of the partial matrix H_(cp) relating to the parity Pc is represented by H_(cp,comp)[i][J](where i and j are each an integer equal to or greater than one and equal to or less than M. (i, j=1, 2, 3, . . . , M−1, M)) in the configuration of the partial matrix H_(cp) relating to the parity Pc shown in FIG. 111 when the accumulator shown in FIG. 89 is applied, the following Math holds true.

[Math. 338]

H _(cp,comp) [i][1]=1 for ∀i;i=1,2,3, . . . ,M−1,M  (Math. 338)

where i is an integer equal to or greater than 1 and equal to or less than M (i=1, 2, 3, . . . , M−1, M), and Math. 338 holds true for all values of i that satisfy this condition.

The following Math also holds true.

[Math. 339]

where i is an integer equal to or greater than 1 and equal to or less than M (i=1, 2, 3, . . . , M−1, M), j is an integer equal to or greater than 1 and equal to or less than M (j=1, 2, 3, . . . , M−1, M), i>j, and values of i and j that satisfy Math. 339 exist.

H _(cp,comp) [i][j]=1 for i>j;i,j=1,2,3, . . . ,M−1,M  (Math. 339)

The following Math also holds true.

[Math. 340]

where i is an integer equal to or greater than 1 and equal to or less than M (i=1, 2, 3, . . . , M−1, M), j is an integer equal to or greater than 1 and equal to or less than M (j=1, 2, 3, . . . , M−1, M), i<j, and Math. 340 holds true for all values of i and j.

H _(cp,comp) [i][j]=0 for ∀i∀j;i<j;i,j=1,2,3, . . . ,M−1,M  (Math. 340)

The partial matrix H_(c,p) relating to the parity Pc when the accumulator shown in FIG. 89 is applied satisfies the above-mentioned conditions. FIG. 112 shows an example of the configuration of the partial matrix H_(cp) relating to the parity Pc when the accumulator shown in FIG. 90 is applied. Assuming that an element in the ith row and the jth column of the partial matrix H_(cp) relating to the parity Pc is represented by H_(cp,comp)[i][j](where i and j are each an integer equal to or greater than one and equal to or less than M. (i, j=1, 2, 3, . . . , M−1, M)) in the configuration of the partial matrix H_(cp) relating to the parity Pc shown in FIG. 112 when the accumulator shown in FIG. 90 is applied, the following Math holds true.

[Math. 341]

H _(cp,comp) [i][i]=1 for ∀i;i=1,2,3, . . . ,M−1,M  (Math. 341)

where i is an integer equal to or greater than 1 and equal to or less than M (i=1, 2, 3, . . . , M−1, M), and Math. 341 holds true for all values of i that satisfy this condition.

[Math. 342]

H _(cp,comp) [i][i−1]=1 for ∀i;i=2,3, . . . ,M−1,M  (Math. 342)

where i is an integer equal to or greater than 2 and equal to or less than M (i=2, 3, . . . , M−1, M), and Math. 342 holds true for all values of i that satisfy this condition.

The following Math also holds true.

[Math. 343]

where i is an integer equal to or greater than 1 and equal to or less than M (i=1, 2, 3, . . . , M−1, M), j is an integer equal to or greater than 1 and equal to or less than M (j=1, 2, 3, . . . , M−1, M), i−j≧2, and values of i and j that satisfy Math. 343 exist.

H _(cp,comp) [i][j]=1 for ∀i−j≧2;i,j=1,2,3, . . . ,M−1,M  (Math. 343)

The following Math also holds true.

[Math. 344]

where i is an integer equal to or greater than 1 and equal to or less than M (i=1, 2, 3, . . . , M−1, M), j is an integer equal to or greater than 1 and equal to or less than M (j=1, 2, 3, . . . , M−1, M), i<j, and Math. 344 holds true for all values of i and j.

H _(cp,comp) [i][j]=0 for ∀i∀j;i<j;i,j=1,2,3, . . . ,M−1,M  (Math. 344)

The partial matrix H_(cp) relating to the parity Pc when the accumulator shown in FIG. 90 is applied satisfies the above-mentioned conditions.

The encoding section shown in FIG. 127, the encoding section obtained by applying the accumulator shown in FIG. 89 to FIG. 127, and the encoding section obtained by applying the accumulator shown in FIG. 90 to FIG. 127 do not always have to obtain the parity based on the configuration shown in FIG. 127. The parity may be obtained from the parity check matrix described thus far. In this case, the information X₁ and the information X₂ of the jth block may be collectively accumulated, and the parity may be obtained by using the accumulated information X₁ and information X₂, and the parity check matrix.

The following describes a code generation method when the column weight is equal for all columns of the partial matrix relating to the information X₁ and the partial matrix relating to the information X₂ in the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔.

As described above, in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q used in the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔, the gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero (see Math. 128) is represented as shown below.

[Math. 345]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,) r1+1)X ₁(D)+(D ^(a#g,2,1) +D ^(a#g,2,2) + . . . +D ^(a#g,2,) r2+1)X ₂(D)+P(D)=0  (Math. 345)

In Math 345, a_(#g,p,q) (p=1 or 2; q=1, 2, . . . , r_(p)) is a natural number. a_(#g,p,y)≠a_(#g,p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z. If r₁ and r₂ are each set to be equal to or greater than three, high error-correction capability is achieved. The following function is defined with respect to polynomial portions of the parity check polynomial satisfying zero in Math. 345.

[Math. 346]

F _(g)(D)=(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,) r1+1)X ₁(D)+(D ^(a#g,2,1) +D ^(a#g,2,2) + . . . +D ^(a#g,2,) r2+1)X ₂(D)+P(D)=0  (Math. 346)

The following two methods allow the use of a time-varying period of q. Method 1:

[Math. 347]

F _(i)(D)≠F _(j)(D)∀i∀j i,j=0,1,2, . . . ,q−2,q−1;i≠j  (Math. 347)

where i is an integer equal to or greater than zero and equal to or less than q−1, j is an integer equal to or greater than zero and equal to or less than q−1, i≠j, and F_(i)(D)≠F_(j)(D) for all values of i and j that satisfy this condition.

Method 2:

[Math. 348]

F _(i)(D)≠F _(j)(D)  (Math. 348)

where i is an integer equal to or greater than zero and equal to or less than q−1, j is an integer equal to or greater than zero and equal to or less than q−1, i≠j, and values of i and j that satisfy Math. 348 exist. The following Math also holds true.

[Math. 349]

F _(i)(D)≠F _(j)(D)  (Math. 349)

where i is an integer equal to or greater than zero and equal to or less than q−1, j is an integer equal to or greater than zero and equal to or less than q−1, i≠j, values of i and j that satisfy Math. 349 exist, but the time-varying period is q. Method 1 and Method 2 for forming the time-varying period of q are also performed in a similar manner when the function Γ_(g)(D) is defined with respect to polynomial portions of the parity check polynomial satisfying zero in Math. 353 (described later). Described next is an example of a setting of a_(#g,p,q) in Math. 345, particularly in a case where r₁ and r₂ are each set to three. When r₁ and r₂ are each set to three, the parity check polynomial satisfying zero in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q is provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 350} \right\rbrack} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{25mu} {{the}\mspace{14mu} 0{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + D^{{a{\# 0}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + D^{{a{\# 0}},2,3} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 350}\text{-}0} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} 1{st}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + D^{{a{\# 1}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + D^{{a{\# 1}},2,3} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 350}\text{-}1} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} 2{nd}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + D^{{a{\# 2}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + D^{{a{\# 2}},2,3} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 350}\text{-}2} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + D^{{a\# g},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + D^{{a\# g},2,3} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 350}\text{-}g} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} \left( {q - 2} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + D^{{a\# {({q - 2})}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + D^{{a\# {({q - 2})}},2,3} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & {\text{(}{{Math}.\mspace{14mu} 350}\text{-}\left( {q - 2} \right)\text{)}} \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} \left( {q - 1} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + D^{{a\# {({q - 1})}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + D^{{a\# {({q - 1})}},2,3} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & {\text{(}{{Math}.\mspace{14mu} 350}\text{-}\left( {q - 1} \right)\text{)}} \end{matrix}$

In this case, considering the description made in Embodiment 1 and Embodiment 6, high error-correction capability is achieved when the following condition is satisfied in the first place.

<Condition 19-2>

$\begin{matrix} {{a_{{\# 0},1,1}\% \mspace{14mu} q} = {a_{{\# 1},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,1}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,1}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,1}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,1}\% \mspace{14mu} q}} \\ {= {v_{1,1}\left( {v_{1,1}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},1,2}\% \mspace{14mu} q} = {a_{{\# 1},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,2}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,2}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,2}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,2}\% \mspace{14mu} q}} \\ {= {v_{1,2}\left( {v_{1,2}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},1,3}\% \mspace{14mu} q} = {a_{{\# 1},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,3}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,3}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,3}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,3}\% \mspace{14mu} q}} \\ {= {v_{1,3}\left( {v_{1,3}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,1}\% \mspace{14mu} q} = {a_{{\# 1},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,1}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,1}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,1}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,1}\% \mspace{14mu} q}} \\ {= {v_{2,1}\left( {v_{2,1}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,2}\% \mspace{14mu} q} = {a_{{\# 1},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,2}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,2}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,2}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,2}\% \mspace{14mu} q}} \\ {= {v_{2,2}\left( {v_{2,2}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,3}\% \mspace{14mu} q} = {a_{{\# 1},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,3}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,3}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,3}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,3}\% \mspace{14mu} q}} \\ {= {v_{2,3}\left( {v_{2,3}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$

In the above description, % means a modulo. That is to say, α%q represents a remainder after dividing α by q. Condition 19-2 is also expressed as shown below.

a _(#k,1,1)%q=v _(1,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,1): fixed value)  <Condition 19-2′>

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,1,1)%q=v_(1,1) (v_(1,1): fixed value) for all values of k).

a _(#k,1,2)%q=v _(1,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,2): fixed value)

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,1,2)%q=v_(1,2) (v_(1,2): fixed value) for all values of k).

a _(#k,1,3)%q=v _(1,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,3): fixed value)

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,1,3)%q=v_(1,3) (v_(1,3): fixed value) for all values of k).

a _(#k,2,1)%q=v _(2,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,1): fixed value)

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,2,1)%q=v_(2,1) (v_(2,1): fixed value) for all values of k).

a _(#k,2,2)%q=v _(2,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,2): fixed value)

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,2,2)%q=v_(2,2) (v_(2,2): fixed value) for all values of k).

a _(#k,2,3)%q=v _(2,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,3): fixed value)

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,2,3)%q=v_(2,3) (v_(2,3): fixed value) for all values of k).

As described in Embodiments 1 and 6, high error-correction capability is achieved when the following condition is further satisfied.

<Condition 19-3>

v_(1, 1) ≠ v_(1, 2), v_(1, 1) ≠ v_(1, 3), v_(1, 2) ≠ v_(1, 3), v_(1, 1) ≠ 0, v_(1, 2) ≠ 0, and  v_(1, 3) ≠ 0.v_(2, 1) ≠ v_(2, 2), v_(2, 1) ≠ v_(2, 3), v_(2, 2) ≠ v_(2, 3), v_(2, 1) ≠ 0, v_(2, 2) ≠ 0, and  v_(2, 3) ≠ 0.

In order to satisfy Condition 19-3, the time-varying period q is required to be equal to or greater than four (This is derived from the terms of X₁(D) and X₂(D) in the parity check polynomial).

High error-correction capability is achieved when the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ satisfies the above-mentioned conditions. High error-correction capability may be achieved if r₁ and r₂ are each greater than three. The following describes the above-mentioned case. When r₁ and r₂ are each set to be equal to or greater than four, the parity check polynomial satisfying zero in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q is provided as shown below.

[Math. 351]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,) r1+1)X ₁(D)+(D ^(a#g,2,1) +D ^(a#g,2,2) + . . . +D ^(a#g,2,) r2+1)X ₂(D)+P(D)=0  (Math. 351)

In Math 351, a_(#g,p,q) (p=1 or 2; q=1, 2, . . . , r_(p)) is a natural number. a_(#g,p,y)≠a_(#g,p,z) for v(y, z) in y, z=1, 2, . . . , r_(p), y≠z. Since r₁ and r₂ are each set to be equal to or greater than four, and the column weight is equal for all columns of the partial matrix relating to the information X₁ and the partial matrix relating to the information X₂, r₁=r₂=r. The parity check polynomial satisfying zero in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q is therefore provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 352} \right\rbrack} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} 0{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,r} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 352}\text{-}0} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} 1{st}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,r} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 352}\text{-}1} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} 2{nd}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,r} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 352}\text{-}2} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,r} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 352}\text{-}g} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} \left( {q - 2} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + D^{{a\# {({q - 2})}},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + D^{{a\# {({q - 2})}},2,r} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & {\text{(}{{Math}.\mspace{14mu} 352}\text{-}\left( {q - 2} \right)\text{)}} \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} \left( {q - 1} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + D^{{a\# {({q - 1})}},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + D^{{a\# {({q - 1})}},2,r} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & {\text{(}{{Math}.\mspace{14mu} 352}\text{-}\left( {q - 1} \right)\text{)}} \end{matrix}$

In this case, considering the description made in Embodiment 1 and Embodiment 6, high error-correction capability is achieved when the following condition is satisfied in the first place.

<Condition 19-4>

$\begin{matrix} {{a_{{\# 0},1,1}\% \mspace{14mu} q} = {a_{{\# 1},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,1}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,1}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,1}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,1}\% \mspace{14mu} q}} \\ {= {v_{1,1}\left( {v_{1,1}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},1,2}\% \mspace{14mu} q} = {a_{{\# 1},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,2}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,2}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,2}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,2}\% \mspace{14mu} q}} \\ {= {v_{1,2}\left( {v_{1,2}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},1,3}\% \mspace{14mu} q} = {a_{{\# 1},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,3}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,3}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,3}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,3}\% \mspace{14mu} q}} \\ {= {v_{1,3}\left( {v_{1,3}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ ⋮ $\begin{matrix} {{a_{{\# 0},1,{r - 1}}\% \mspace{14mu} q} = {a_{{\# 1},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,{r - 1}}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,{r - 1}}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {v_{1,{r - 1}}\left( {v_{1,{r - 1}}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},1,r}\% \mspace{14mu} q} = {a_{{\# 1},1,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,r}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,r}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,r}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,r}\% \mspace{14mu} q}} \\ {= {v_{1,r}\left( {v_{1,r}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,1}\% \mspace{14mu} q} = {a_{{\# 1},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,1}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,1}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,1}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,1}\% \mspace{14mu} q}} \\ {= {v_{2,1}\left( {v_{2,1}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,2}\% \mspace{14mu} q} = {a_{{\# 1},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,2}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,2}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,2}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,2}\% \mspace{14mu} q}} \\ {= {v_{2,2}\left( {v_{2,2}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,3}\% \mspace{14mu} q} = {a_{{\# 1},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,3}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,3}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,3}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,3}\% \mspace{14mu} q}} \\ {= {v_{2,3}\left( {v_{2,3}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ ⋮ $\begin{matrix} {{a_{{\# 0},2,{r - 1}}\% \mspace{14mu} q} = {a_{{\# 1},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,{r - 1}}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,{r - 1}}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {v_{2,{r - 1}}\left( {v_{2,{r - 1}}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,r}\% \mspace{14mu} q} = {a_{{\# 1},2,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,r}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,r}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,r}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,r}\% \mspace{14mu} q}} \\ {= {v_{2,r}\left( {v_{2,r}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$

In the above description, % means a modulo. That is to say, α%q represents a remainder after dividing α by q. Condition 19-4 is also expressed as shown below. Note that j is an integer equal to or greater than one and equal to or less than r.

a _(#k,1,j)%q=v _(1,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,j): fixed value)  <Condition 19-4′>

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,1,j)%q=v₁, (v_(1,j): fixed value) for all values of k).

a _(#k,2,j)%q=v _(2,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,j): fixed value)

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,2,j)%q=v_(2,j) (v_(2,j): fixed value) for all values of k).

As described in Embodiments 1 and 6, high error-correction capability is achieved when the following condition is further satisfied.

<Condition 19-5>

i is an integer equal to or greater than one and equal to or less than r, v_(s,i)≠0 for all values of i.

Also, i is an integer equal to or greater than one and equal to or less than r, j is an integer equal to or greater than one and equal to or less than r, and v_(s,i)≠v_(s), for all values of i and j where i≠j.

Note that s is an integer equal to or greater than one and equal to or less than two. In order to satisfy Condition 19-5, the time-varying period q is required to be equal to or greater than r+1 (This is derived from the terms of X₁(D) to X₂(D) in the parity check polynomial).

High error-correction capability is achieved when the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ satisfies the above-mentioned conditions. Considered next is a case where, in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q used in the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔, the gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero is represented as shown below.

[Math. 353]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,) r1)X ₁(D)+(D ^(a#g,2,1) +D ^(a#g,2,2) + . . . +D ^(a#g,2,) r2)X ₂(D)+P(D)=0  (Math. 353)

In Math 353, a_(#g,p,q) (p=1 or 2; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. a_(#g,p,y)≠a_(#g,p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z. Described next is an example of a setting of a_(#g,p,q) in Math. 353, particularly in a case where r₁ and r₂ are each set to four. When r₁ and r₂ are each set to four, the parity check polynomial satisfying zero in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q is provided as shown below.

$\begin{matrix} {\mspace{79mu} \begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 354} \right\rbrack & \; \end{matrix}} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} 0{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + D^{{a{\# 0}},1,3} + D^{{a{\# 0}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + D^{{a{\# 0}},2,3} + D^{{a{\# 0}},2,4}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 354}\text{-}0} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{20mu} {{the}\mspace{14mu} 1{st}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + D^{{a{\# 1}},1,3} + D^{{a{\# 1}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + D^{{a{\# 1}},2,3} + D^{{a{\# 1}},2,4}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 354}\text{-}1} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} 2{nd}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + D^{{a{\# 2}},1,3} + D^{{a{\# 2}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + D^{{a{\# 2}},2,3} + D^{{a{\# 2}},2,4}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 354}\text{-}2} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + D^{{a\# g},1,3} + D^{{a\# g},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + D^{{a\# g},2,3} + D^{{a\# g},2,4}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 354}\text{-}g} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} \left( {q - 2} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + D^{{a\# {({q - 2})}},1,3} + D^{{a\# {({q - 2})}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + D^{{a\# {({q - 2})}},2,3} + D^{{a\# {({q - 2})}},2,4}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 354}\text{-}\left( {q - 2} \right)} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\mspace{20mu} {{the}\mspace{14mu} \left( {q - 1} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + D^{{a\# {({q - 1})}},1,3} + D^{{a\# {({q - 1})}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + D^{{a\# {({q - 1})}},2,3} + D^{{a\# {({q - 1})}},2,4}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 354}\text{-}\left( {q - 1} \right)} \right) \end{matrix}$

In this case, considering the description made in Embodiment 1 and Embodiment 6, high error-correction capability is achieved when the following condition is satisfied in the first place.

<Condition 19-6>

$\begin{matrix} {{a_{{\# 0},1,1}\% \mspace{14mu} q} = {a_{{\# 1},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,1}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,1}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,1}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,1}\% \mspace{14mu} q}} \\ {= {v_{1,1}\left( {v_{1,1}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},1,2}\% \mspace{14mu} q} = {a_{{\# 1},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,2}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,2}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,2}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,2}\% \mspace{14mu} q}} \\ {= {v_{1,2}\left( {v_{1,2}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},1,3}\% \mspace{14mu} q} = {a_{{\# 1},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,3}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,3}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,3}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,3}\% \mspace{14mu} q}} \\ {= {v_{1,3}\left( {v_{1,3}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},1,4}\% \mspace{14mu} q} = {a_{{\# 1},1,4}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,4}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,4}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,4}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,3}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,4}\% \mspace{14mu} q}} \\ {= {v_{1,4}\left( {v_{1,4}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,1}\% \mspace{14mu} q} = {a_{{\# 1},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,1}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,1}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,3}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,1}\% \mspace{14mu} q}} \\ {= {v_{1,4}\left( {v_{1,4}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,2}\% \mspace{14mu} q} = {a_{{\# 1},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,2}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,2}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,2}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,2}\% \mspace{14mu} q}} \\ {= {v_{2,2}\left( {v_{2,2}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,3}\% \mspace{14mu} q} = {a_{{\# 1},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,3}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,3}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,3}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,3}\% \mspace{14mu} q}} \\ {= {v_{2,3}\left( {v_{2,3}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,4}\% \mspace{14mu} q} = {a_{{\# 1},2,4}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,4}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,4}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,4}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,4}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,4}\% \mspace{14mu} q}} \\ {= {v_{2,4}\left( {v_{2,4}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$

In the above description, % means a modulo. That is to say, α%q represents a remainder after dividing α by q. Condition 19-6 is also expressed as shown below.

a _(#k,1,1)%q=v _(1,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,1): fixed value)  <Condition 19-6′>

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,1,1)%q=v_(1,1) (v_(1,1): fixed value) for all values of k).

a _(#k,1,2)%q=v _(1,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,2): fixed value)

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,1,2)%q=v_(1,2) (v_(1,2): fixed value) for all values of k).

a _(#k,1,3)%q=v _(1,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,3): fixed value)

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,1,3)%q=v_(1,3) (v_(1,3): fixed value) for all values of k).

a _(#k,1,4)%q=v _(1,4) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,4): fixed value)

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,1,4)%q=v_(1,4) (v_(1,4): fixed value) for all values of k).

a _(#k,2,1)%q=v _(2,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,1): fixed value)

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,2,1)%q=v_(2,1) (v_(2,1): fixed value) for all values of k).

a _(#k,2,2)%q=v _(2,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,2): fixed value)

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,2,2)%q=v_(2,2) (v_(2,2): fixed value) for all values of k).

a _(#k,2,3)%q=v _(2,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,3): fixed value)

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,2,3)%q=v_(2,3) (v_(2,3): fixed value) for all values of k).

a _(#k,2,4)%q=v _(2,4) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,4): fixed value)

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,2,4)%q=v_(2,4) (v_(2,4): fixed value) for all values of k).

As described in Embodiments 1 and 6, high error-correction capability is achieved when the following condition is further satisfied.

<Condition 19-7>

v_(1, 1) ≠ v_(1, 2), v_(1, 1) ≠ v_(1, 3), v_(1, 1) ≠ v_(1, 4), v_(1, 2) ≠ v_(1, 3), v_(1, 1) ≠ v_(1, 4), and v_(1, 3) ≠ v_(1, 4).v_(2, 1) ≠ v_(2, 2), v_(2, 1) ≠ v_(2, 3), v_(2, 1) ≠ v_(2, 4), v_(2, 2) ≠ v_(2, 3), v_(2, 2) ≠ v_(2, 4), and v_(2, 3) ≠ v_(2, 4).

In order to satisfy Condition 19-7, the time-varying period q is required to be equal to or greater than four (This is derived from the terms of X₁(D) and X₂(D) in the parity check polynomial).

High error-correction capability is achieved when the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ satisfies the above-mentioned conditions. High error-correction capability may be achieved if r₁ and r₂ are each greater than four. The following describes the above-mentioned case. Since r₁ and r₂ are each set to be equal to or greater than five, and the column weight is equal for all columns of the partial matrix relating to the information X₁ and the partial matrix relating to the information X₂, r=r₂=r. The parity check polynomial satisfying zero in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q is therefore provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 355} \right\rbrack} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} 0{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,r}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} 1{st}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,r}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 355}\text{-}1} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} 2{nd}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,r}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 355}\text{-}2} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,r}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 355}\text{-}g} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} \left( {q - 2} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + D^{{a\# {({q - 2})}},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + D^{{a\# {({q - 2})}},2,r}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 355}\text{-}\left( {q - 2} \right)} \right. \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} \left( {q - 1} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + D^{{a\# {({q - 1})}},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + D^{{a\# {({q - 1})}},2,r}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 355}\text{-}\left( {q - 1} \right)} \right. \end{matrix}$

In this case, considering the description made in Embodiment 1 and Embodiment 6, high error-correction capability is achieved when the following condition is satisfied in the first place.

<Condition 19-8>

$\begin{matrix} {{a_{{\# 0},1,1}\% \mspace{14mu} q} = {a_{{\# 1},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,1}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,1}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,1}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,1}\% \mspace{14mu} q}} \\ {= {v_{1,1}\left( {v_{1,1}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},1,2}\% \mspace{14mu} q} = {a_{{\# 1},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,2}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,2}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,2}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,2}\% \mspace{14mu} q}} \\ {= {v_{1,2}\left( {v_{1,2}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},1,3}\% \mspace{14mu} q} = {a_{{\# 1},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,3}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,3}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,3}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,3}\% \mspace{14mu} q}} \\ {= {v_{1,3}\left( {v_{1,3}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ ⋮ $\begin{matrix} {{a_{{\# 0},1,{r - 1}}\% \mspace{14mu} q} = {a_{{\# 1},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,{r - 1}}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,{r - 1}}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {v_{1,{r - 1}}\left( {v_{1,{r - 1}}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},1,r}\% \mspace{14mu} q} = {a_{{\# 1},1,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,r}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},1,r}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,r}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},1,r}\% \mspace{14mu} q}} \\ {= {v_{1,r}\left( {v_{1,r}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,1}\% \mspace{14mu} q} = {a_{{\# 1},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,1}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,1}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,1}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,1}\% \mspace{14mu} q}} \\ {= {v_{2,1}\left( {v_{2,1}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,2}\% \mspace{14mu} q} = {a_{{\# 1},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,2}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,2}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,2}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,2}\% \mspace{14mu} q}} \\ {= {v_{2,2}\left( {v_{2,2}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,3}\% \mspace{14mu} q} = {a_{{\# 1},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,3}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,3}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,3}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,3}\% \mspace{14mu} q}} \\ {= {v_{2,3}\left( {v_{2,3}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ ⋮ $\begin{matrix} {{a_{{\# 0},2,{r - 1}}\% \mspace{14mu} q} = {a_{{\# 1},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,{r - 1}}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},1,{r - 1}}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {v_{2,{r - 1}}\left( {v_{2,{r - 1}}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,r}\% \mspace{14mu} q} = {a_{{\# 1},2,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,r}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,r}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,r}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,r}\% \mspace{14mu} q}} \\ {= {v_{2,r}\left( {v_{2,r}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$

In the above description, % means a modulo. That is to say, α%q represents a remainder after dividing α by q. Condition 19-8 is also expressed as shown below. Note that j is an integer equal to or greater than one and equal to or less than r.

a _(#k,1,j)%q=v _(1,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,j): fixed value)  <Condition 19-8′>

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,2,j)%q=v_(1,j) (v_(1,j): fixed value) for all values of k).

a _(#k,2,j)%q=v _(2,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,j): fixed value)

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,2,j)%q=v_(2,j) (v_(2,j): fixed value) for all values of k).

As described in Embodiments 1 and 6, high error-correction capability is achieved when the following condition is further satisfied.

<Condition 19-9>

i is an integer equal to or greater than one and equal to or less than r, j is an integer equal to or greater than one and equal to or less than r, and v_(s,i)≠v_(s,j) for all values of i and j where if j.

Note that s is an integer equal to or greater than one and equal to or less than two. In order to satisfy Condition 19-9, the time-varying period q is required to be equal to or greater than r (This is derived from the terms of X₁(D) to X₂(D) in the parity check polynomial).

High error-correction capability is achieved when the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ satisfies the above-mentioned conditions.

The following describes a code generation method when the partial matrix relating to the information X₁ and the partial matrix relating to the information X₂ are irregular in the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔, i.e. a method for generating an irregular LDPC code disclosed in Non-Patent Literature 36. As described above, in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q used in the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔, the gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero (see Math. 128) is represented as shown below.

[Math. 356]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,) r1+1)X ₁(D)+(D ^(a#g,2,1) +D ^(a#g,2,2) + . . . +D ^(a#g,2,) r2+1)X ₂(D)+P(D)=0  (Math. 356)

In Math 356, a_(#g,p,q) (p=1 or 2; q=1, 2, . . . , r_(p)) is a natural number. a_(#g,p,y)≠a_(#g,p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z. If r₁ and r₂ are each set to be equal to or greater than three, high error-correction capability is achieved. The following describes conditions to achieve high error-correction capability in Math. 356 when r₁ and r₂ are each set to be equal to or greater than three. When r₁ and r₂ are each set to be equal to or greater than three, the parity check polynomial satisfying zero in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q is provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 357} \right\rbrack} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}}\text{}\mspace{20mu} {{satisfying}\mspace{14mu} {the}\mspace{14mu} 0{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 357}\text{-}0} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}}\text{}\mspace{20mu} {{satisfying}\mspace{14mu} {the}\mspace{14mu} 1{st}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 357}\text{-}1} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}}\text{}\mspace{20mu} {{satisfying}\mspace{14mu} {the}\mspace{14mu} 2{nd}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 357}\text{-}2} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}}\text{}\mspace{20mu} {{satisfying}\mspace{14mu} {the}\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 357}\text{-}g} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}}\text{}\mspace{20mu} {{satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q - 2} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + D^{{a\# {({q - 2})}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + D^{{a\# {({q - 2})}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 357}\text{-}\left( {q - 2} \right)} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}}\mspace{20mu} {{satisfying}\mspace{14mu} {the}\mspace{14mu} \left( {q - 1} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + D^{{a\# {({q - 1})}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + D^{{a\# {({q - 1})}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 357}\text{-}\left( {q - 1} \right)} \right) \end{matrix}$

In this case, high error-correction capability is achieved when the following condition is given to set the minimum column weighting to three in the partial matrix relating to the information X₁. In the αth column of the parity check matrix, the number of ones existing in elements of vector generated by extracting the αth column is the column weight of the αth column.

<Condition 19-10-1>

$\begin{matrix} {{a_{{\# 0},2,1}\% \mspace{14mu} q} = {a_{{\# 1},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,1}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,1}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,1}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,1}\% \mspace{14mu} q}} \\ {= {v_{2,1}\left( {v_{2,1}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$ $\begin{matrix} {{a_{{\# 0},2,2}\% \mspace{14mu} q} = {a_{{\# 1},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,2}\% \mspace{14mu} q}} \\ {= {\ldots = {a_{{\# g},2,2}\% \mspace{14mu} q}}} \\ {= {\ldots = {a_{{\# {({q - 2})}},2,2}\% \mspace{14mu} q}}} \\ {= {a_{{\# {({q - 1})}},2,2}\% \mspace{14mu} q}} \\ {= {v_{2,2}\left( {v_{2,2}\text{:}\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix}$

Similarly, high error-correction capability is achieved when the following condition is given to set the minimum column weighting to three in the partial matrix relating to the information X₂.

<Condition 19-10-2>

a_(#0, 2, 1)%q = a_(#1, 2, 1)%q = a_(#2, 2, 1)%q = a_(#3, 2, 1)%q = … = a_(#g, 2, 1)%q = … = a_(#(q − 2), 2, 1)%q = a_(#(q − 1), 2, 1)%q = v_(2, 1)(v_(2, 1) : fixed  value) a_(#0, 2, 2)%q = a_(#1, 2, 2)%q = a_(#2, 2, 2)%q = a_(#3, 2, 2)%q = … = a_(#g, 2, 2)%q = … = a_(#(q − 2), 2, 2)%q = a_(#(q − 1), 2, 2)%q = v_(2, 2)(v_(2, 2) : fixed  value)

In the above description, % means a modulo. That is to say, u %q represents a remainder after dividing α by q. Condition 19-10-1 and Condition 19-10-2 are also expressed as shown below. Note that j is one or two.

a _(#k,1,j)%q=v _(1,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,j): fixed value)  <Condition 19-10′-1>

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,1,j)%q=v_(1,j) (v_(1,j): fixed value) for all values of k).

a _(#k,2,j)%q=v _(2,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,j): fixed value)  <Condition 19-10′-2>

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,2,j)%q=v_(2,j) (v_(2,j): fixed value) for all values of k).

As described in Embodiments 1 and 6, high error-correction capability is achieved when the following condition is further satisfied.

v _(1,1)≠0, and v _(1,2)≠0.

Also, v _(1,1) ≠v _(1,2).  <Condition 19-11-1>

v _(2,1)≠0, and v _(2,2)≠0.

Also, v _(2,1) ≠v _(2,2).  <Condition 19-11-2>

Since the partial matrix relating to the information X₁ and the partial matrix relating to the information X₂ have to be irregular, the following condition is given.

a _(#k,1,v)%q≠v _(1,v) for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1(v _(1,v): fixed value)  <Condition 19-12′-1>

where i is an integer equal to or greater than zero and equal to or less than q−1, j is an integer equal to or greater than zero and equal to or less than q−1, i≠j, and a_(#1,1,v)%q=a_(#j,1,v)%q for all values of i and j that satisfy this condition . . . . Condition #Xa-1

v is an integer equal to or greater than three and equal to or less than r₁, although Condition #Xa-1 does not hold for all v.

a _(#i,2,v)%q=a _(#j,2,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 19-12-2>

where i is an integer equal to or greater than zero and equal to or less than q−1, j is an integer equal to or greater than zero and equal to or less than q−1, i≠j, and a_(#i,2,v)%q=a_(#j,2,v)%q for all values of i and j that satisfy this condition . . . . Condition #Xa-2

v is an integer equal to or greater than three and equal to or less than r₂, although Condition #Xa-2 does not hold for all v. Condition 19-12-1 and Condition 19-12-2 are also expressed as shown below.

a _(#i,1,v)%q≠a _(#j,1,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 19-12′-1>

where i is an integer equal to or greater than zero and equal to or less than q−1, j is an integer equal to or greater than zero and equal to or less than q−1, i≠j, and values of i and j that satisfy a_(#i,1,v)%q≠a_(#j, i,v)%q exist . . . . Condition #Ya-11

v is an integer equal to or greater than three and equal to or less than r₁, although Condition #Ya-1 does not hold for all v.

a _(#i,2,v)%q≠a _(#j,2,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-12′-2>

where i is an integer equal to or greater than zero and equal to or less than q−1, j is an integer equal to or greater than zero and equal to or less than q−1, i≠j, and values of i and j that satisfy a_(#i,2,v)%q≠a_(#j,2,v)%q exist . . . . Condition #Ya-2

v is an integer equal to or greater than three and equal to or less than r₂, although Condition #Ya-2 does not hold for all v. In the above-mentioned manner, the minimum column weighting is set to three in the partial matrix relating to the information X₁ and in the partial matrix relating to the information X₂. By the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ satisfying the above-mentioned conditions, the irregular LDPC code is generated and high error-correction capability is achieved. The concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ for achieving high error-correction capability is generated based on the above-mentioned conditions. In order to readily obtain the above-mentioned concatenated code for achieving high error-correction capability, r₁=r₂=r (r is equal to or greater than three) should hold true. Next, in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q used in the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔, the gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero (see Math. 128) is represented as shown below.

[Math. 358]

(D ^(a#g,1,1) +D ^(a#g,1,2) + . . . +D ^(a#g,1,) r1)X ₁(D)+(D ^(a#g,2,1) +D ^(a#g,2,2) + . . . +D ^(a#g,2,) r2)X ₂(D)+P(D)=0  (Math. 358)

In Math 358, a_(#g,p,q) (p=1 or 2; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. a_(#g,p,y)≠a_(#g,p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z. The following describes conditions to achieve high error-correction capability in Math. 358 when r₁ and r₂ are each set to be equal to or greater than four. When r₁ and r₂ are each set to be equal to or greater than four, the parity check polynomial satisfying zero in the feed-forward periodical LDPC convolutional code that is based on the parity check polynomial of a time-varying period of q is provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 359} \right\rbrack} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} 0{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,_{r_{2}}}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 359}\text{-}0} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} 1{st}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,_{r_{2}}}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 359}\text{-}1} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} 2{nd}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,_{r_{2}}}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 359}\text{-}2} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,_{r_{2}}}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 359}\text{-}g} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} \left( {q - 2} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + D^{{a\# {g{({q - 2})}}1},_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + D^{{a\# {({q - 2})}},2,_{r_{2}}}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 359}\text{-}\left( {q - 2} \right)} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} \left( {q - 1} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + D^{{a\# {g{({q - 1})}}1},_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + D^{{a\# {({q - 1})}},2,_{r_{2}}}} \right){X_{2}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 359}\text{-}\left( {q - 1} \right)} \right) \end{matrix}$

In this case, high error-correction capability is achieved when the following condition is given to set the minimum column weighting to three in the partial matrix relating to the information X₁.

<Condition 19-13-1>

a_(#0, 1, 1)%q = a_(#1, 1, 1)%q = a_(#2, 1, 1)%q = a_(#3, 1, 1)%q = … = a_(#g, 1, 1)%q = … = a_(#(q − 2), 1, 1)%q = a_(#(q − 1), 1, 1)%q = v_(1, 1)(v_(1, 1) : fixed  value) a_(#0, 1, 2)%q = a_(#1, 1, 2)%q = a_(#2, 1, 2)%q = a_(#3, 1, 2)%q = … = a_(#g, 1, 2)%q = … = a_(#(q − 2), 1, 2)%q = a_(#(q − 1), 1, 2)%q = v_(1, 2)(v_(1, 2) : fixed  value) a_(#0, 1, 3)%q = a_(#1, 1, 3)%q = a_(#2, 1, 3)%q = a_(#3, 1, 3)%q = … = a_(#g, 1, 3)%q = … = a_(#(q − 2), 1, 3)%q = a_(#(q − 1), 1, 3)%q = v_(1, 3)(v_(1, 3) : fixed  value)

Similarly, high error-correction capability is achieved when the following condition is given to set the minimum column weighting to three in the partial matrix relating to the information X₂.

<Condition 19-13-2>

a_(#0, 2, 1)%q = a_(#1, 2, 1)%q = a_(#2, 2, 1)%q = a_(#3, 2, 1)%q = … = a_(#g, 2, 1)%q = … = a_(#(q − 2), 2, 1)%q = a_(#(q − 1), 2, 1)%q = v_(2, 1)(v_(2, 1) : fixed  value) a_(#0, 2, 2)%q = a_(#1, 2, 2)%q = a_(#2, 2, 2)%q = a_(#3, 2, 2)%q = … = a_(#g, 2, 2)%q = … = a_(#(q − 2), 2, 2)%q = a_(#(q − 1), 2, 2)%q = v_(2, 2)(v_(2, 2) : fixed  value) a_(#0, 2, 3)%q = a_(#1, 2, 3)%q = a_(#2, 2, 3)%q = a_(#3, 2, 3)%q = … = a_(#g, 2, 3)%q = … = a_(#(q − 2), 2, 3)%q = a_(#(q − 1), 2, 3)%q = v_(2, 3)(v_(2, 3) : fixed  value)

In the above description, % means a modulo. That is to say, α%q represents a remainder after dividing α by q. Condition 19-13-1 and Condition 19-13-2 are also expressed as shown below. Note that j is one, two or three.

a _(#k,1,j)%q=v _(1,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,j): fixed value)  <Condition 19-13′-2>

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,1,j)%q=v_(1,j) (v_(1,j): fixed value) for all values of k).

a _(#k,2,j)%q=v _(2,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,j): fixed value)  <Condition 19-13′-2>

(k is an integer equal to or greater than zero and equal to or less than q−1, a_(#k,2,j)%q=v_(2,j) (v_(2,j): fixed value) for all values of k).

As described in Embodiments 1 and 6, high error-correction capability is achieved when the following condition is further satisfied.

v _(1,1) ≠v _(1,2) , v _(1,1) ≠v _(1,3) , v _(1,2) ≠v _(1,3).  <Condition 19-14-1>

v _(2,1) ≠v _(2,2) , v _(2,1) ≠v _(2,3) , v _(2,2) ≠v _(2,3).  <Condition 19-14-2>

Since the partial matrix relating to the information X₁ and the partial matrix relating to the information X₂ have to be irregular, the following condition is given.

a _(#i,1,v)%q=a _(#j,1,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-15-1>

where i is an integer equal to or greater than zero and equal to or less than q−1, j is an integer equal to or greater than zero and equal to or less than q−1, if j, and a_(#i,1,v)%q=a_(#j,1,v)%q for all values of i and j that satisfy this condition. Condition #Xb-1

v is an integer equal to or greater than four and equal to or less than r₁, although Condition #Xb-1 does not hold for all v.

a _(#i,2,v)%q=a _(#j,2,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-15-2>

where i is an integer equal to or greater than zero and equal to or less than q−1, j is an integer equal to or greater than zero and equal to or less than q−1, i≠j, and a_(#i,2,v)%q=a_(#j,2,v)%q for all values of i and j that satisfy this condition. Condition #Xb-2

v is an integer equal to or greater than four and equal to or less than r₂, although Condition #Xb-2 does not hold for all v.

Condition 19-15-1 and Condition 19-15-2 are also expressed as shown below.

a _(#i,1,v)%q≠a _(#j,1,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-15′-2>

where i is an integer equal to or greater than zero and equal to or less than q−1, j is an integer equal to or greater than zero and equal to or less than q−1, i≠j, and values of i and j that satisfy a_(#i,1,v)%q≠a_(#j,1,v)%q exist . . . . Condition #Yb-1

v is an integer equal to or greater than four and equal to or less than r₁, although Condition #Yb-1 does not hold for all v.

a _(#i,2,v)%q≠a _(#j,2,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 18-15′-2>

where i is an integer equal to or greater than zero and equal to or less than q−1, j is an integer equal to or greater than zero and equal to or less than q−1, i≠j, and values of i and j that satisfy a_(#i,2,v)%q a_(#j,2,v)%q exist . . . . Condition #Yb-2

v is an integer equal to or greater than four and equal to or less than r₂, although Condition #Yb-2 does not hold for all v.

In the above-mentioned manner, the minimum column weighting is set to three in the partial matrix relating to the information X₁ and in the partial matrix relating to the information X₂. By the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ satisfying the above-mentioned conditions, the irregular LDPC code is generated and high error-correction capability is achieved. The concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ for achieving high error-correction capability is generated based on the above-mentioned conditions. In order to readily obtain the above-mentioned concatenated code for achieving high error-correction capability, r₁=r₂=r (r is equal to or greater than four) should hold true.

As for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ described in the present embodiment, a code generated using any of the code generation methods described in the present embodiment is decoded by performing belief propagation decoding, such as the BP decoding, sum-product decoding, min-sum decoding, offset BP decoding, Normalized BP decoding, Shuffled BP decoding, and Layered BP decoding in which scheduling is performed as disclosed in Non-Patent Literature 4 to 6, based on the parity check matrix generated using the parity check matrix generation method described in the present embodiment as described with use of FIG. 108. Therefore, high-speed decoding is realized and high error-correction capability is achieved.

As described above, by implementing the generation method, the encoder, the configuration of the parity check matrix, the decoding method and the like for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔, the decoding method using the belief propagation algorithm for realizing high-speed decoding is applied to achieve high error-correction capability. The requirements described in the present embodiment are just examples, and the error-correction code for achieving high error-correction capability is generated in other methods.

The following describes examples of a time period (time-varying period) for the feed-forward LDPC convolutional code that is based on the parity check polynomial in the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔, based on Embodiment 6:

(1) The time-varying period q is a prime number.

(2) The time-varying period q is an odd number and the number of divisors of q is small.

(3) The time-varying period q is assumed to be α×β,

where α and β are odd numbers other than one and are prime numbers.

(4) The time-varying period q is assumed to be α_(n),

where α is an odd number other than one and is a prime number, and n is an integer equal to or greater than two.

(5) The time-varying period q is assumed to be α×β×γ,

where α, β, and γ are odd numbers other than one and are prime numbers.

(6) The time-varying period q is assumed to be α×β×γ×δ,

where α, β, γ, and δ are odd numbers other than one and are prime numbers. When (2) is taken into consideration, the following other examples are considered:

(7) The time-varying period q is assumed to be A^(u)×B^(v),

where A and B are odd numbers other than one and are prime numbers, A≠B, and u and v are integers equal to or greater than one.

(8) The time-varying period q is assumed to be A^(u)×B^(v)×C′,

where A, B, and C are odd numbers other than one and are prime numbers, A≠B, A≠C, B≠C, and u, v, and w are integers equal to or greater than one.

(9) The time-varying period q is assumed to be A^(u)×B^(v)×C^(w)×D^(x),

where A, B, C, and D are odd numbers other than one and are prime numbers, A≠B, A≠C, A≠D, B≠C, B≠D, C≠D, and u, v, w, and x are integers equal to or greater than one. As described above, however, since the effect described in Embodiment 6 is achieved as the time-varying period q grows large, it is not always true that a code having high error-correction capability is not obtained when the time-varying period m is an even number. For example, conditions as shown below may be satisfied when the time-varying period m is an even number:

(10) The time-varying period m is assumed to be 2^(g)×K,

where K is a prime number, and g is an integer equal to or greater than one.

(11) The time-varying period m is assumed to be 2^(g)×L,

where L is an odd number, the number of divisors of L is small, and g is an integer equal to or greater than one.

(12) The time-varying period m is assumed to be 2^(g)×α×β,

where α and β are odd numbers other than one and are prime numbers, and g is an integer equal to or greater than one.

(13) The time-varying period m is assumed to be 2^(g)×α^(n),

where α is an odd number other than one and is a prime number, n is an integer equal to or greater than two, and g is an integer equal to or greater than one.

(14) The time-varying period m is assumed to be 2^(g)×α×β×γ,

where α, β, and γ are odd numbers other than one and are prime numbers, and g is an integer equal to or greater than one.

(15) The time-varying period m is assumed to be 2^(g)×α×β×γ×δ,

where α, β, γ, and δ are odd numbers other than one and are prime numbers, and g is an integer equal to or greater than one.

(16) The time-varying period m is assumed to be 2^(g)×A^(u)×B^(v),

where A and B are odd numbers other than one and are prime numbers, A B, u and v are integers equal to or greater than one, and g is an integer equal to or greater than one.

(17) The time-varying period m is assumed to be 2^(g)×A^(u)×B^(v)×C^(w),

where A, B, and C are odd numbers other than one and are prime numbers, A≠B, A≠C, B≠C, u, v, and w are integers equal to or greater than one, and g is an integer equal to or greater than one.

(18) The time-varying period m is assumed to be 2^(g)×A^(u)×B^(v)×C^(W)×D^(x),

where A, B, C, and D are odd numbers other than one and are prime numbers, A≠B, A≠C, A≠D, B≠C, B≠D, C≠D, u, v, w, and x are integers equal to or greater than one, and g is an integer equal to or greater than one.

However, when the time-varying period m is an odd number not satisfying any of the above-mentioned conditions (1) to (9) or an even number not satisfying any of the above-mentioned conditions (10) to (18), high error-correction capability can be achieved.

For example, in the DVB standard disclosed in Non-Patent Literature 30, 16200 bits and 64800 bits are each defined as the block length of the LDPC code. Considering such a block size, 15, 25, 27, 45, 75 and 135 are considered as examples of an appropriate value for the time-varying period.

In the above-mentioned description of the code generation method when there are a plurality of values of the column weight of the partial matrix relating to the information X₁ and the partial matrix relating to the information X₂ in the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔, several important conditions are presented. When the parity check polynomial satisfying zero in the feed-forward LDPC convolutional code that is based on the parity check polynomial in the above-mentioned concatenated code is shown by Math. 356, an appropriate code can be obtained by adding the following conditions to Condition 19-10-1 and Condition 19-10-2, Condition 19-10′-1 and Condition 19-10′-2, and Condition 19-11-1 and Condition 19-11-2, with reference to Embodiment 6.

<Condition 19-16>

[Math. 360]

v _(i,j) ≠v _(s,t)  (Math. 360)

where i is an integer equal to or greater than one and equal to or less than two, j is one or two, s is an integer equal to or greater than one and equal to or less than two, t is one or more, Math. 360 holds true for all values of i, j, s and t except when (i, j)=(s, t).

<Condition 19-17>

is an integer equal to or greater than one and equal to or less than two, j is one or two, v_(i,j) is not a divisor of the time-varying period q or is one for all values of i and j.

In the above-mentioned description of the code generation method when column weight is equal for all columns of the partial matrix relating to the information X₁ and the partial matrix relating to the information X₂ in the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feed-forward LDPC convolutional code that is based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔, several important conditions are presented. When the parity check polynomial satisfying zero in the feed-forward LDPC convolutional code that is based on the parity check polynomial in the above-mentioned concatenated code is shown by Math. 352-0 to Math. 352-(q−1), an appropriate code can be obtained by adding the following conditions to Condition 19-4, Condition 19-4′ and Condition 19-5, with reference to Embodiment 6.

<Condition 19-18>

[Math. 361]

v _(i,j) ≠v _(s,t)  (Math. 361)

where i is an integer equal to or greater than one and equal to or less than two, j is an integer equal to or greater than one and equal to or less than r, s is an integer equal to or greater than one and equal to or less than two, t is an integer equal to or greater than one and equal to or less than r, Math. 361 holds true for all values of i, j, s and t except when (i, j)=(s, t).

<Condition 19-19>

i is an integer equal to or greater than one and equal to or less than two, j is an integer equal to or greater than one and equal to or less than r, v_(i,j) is not a divisor of the time-varying period q or is one for all values of i and j.

Embodiment 20

In Embodiment 18, description has been made of a concatenated code concatenating an accumulator, via an interleaver, with a feedforward LDPC convolutional code based on a parity check polynomial using a tail-biting scheme of a coding rate of (n−1)/n. In the present embodiment, the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ is described as an example of Embodiment 18.

A code configuration method of the above-mentioned invention is described in detail below. FIG. 139 shows an example of the configuration of an encoder for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme in the present embodiment. In FIG. 139, a coding rate of the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme, a block size for the concatenated code, the number of bits of information in one block and the number of bits of parity in one block are respectively ¾, N bits, 3×M bits and M bits. Therefore, a relation N=4×M holds true. In FIG. 139, components that operate in a similar manner to those in FIGS. 88 and 113 are identified by the same reference signs as those in FIGS. 88 and 113.

In addition, assumption is made as follows.

information X₁ included in an ith block is X_(1,1,0), X_(1,1,1), X_(1,1,2), . . . , X_(1,1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(1,1,M−2), X_(1,1,M−1),

information X₂ included in an ith block is X_(1,2,0), X_(1,2,1), X_(1,2,2), . . . , X_(1,2,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(1,2,M−2), X_(1,2,M−1), and

information X₃ included in an ith block is X_(1,3,0), X_(1,3,1), X_(1,3,2), . . . , X_(1,3,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(1,3,M−2), X_(1,3,M−)1.

A processing section 11300_1 relating to the information X₁ includes an X₁ computing section 11302_1. In the tail-biting scheme, when performing encoding with respect to the ith block, the X₁ computing section 11302_1 receives information X_(1,1,0), X_(i,1,1), X_(1,1,2), . . . , X_(i,1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(1,1,M−2), X_(1,1,M−1) (11301_1) as input, performs processing relating to the information X₁, and outputs data after the computation A_(i,1,0), A_(i,1,1), A_(i,1,2), . . . , A_(i,1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , A_(i,1,M−2), A_(i,1,M−1) (11303_1).

A processing section 11300_2 relating to the information X₂ includes an X₂ computing section 11302_2. In the tail-biting scheme, when performing encoding with respect to the ith block, the X₂ computing section 11302_2 receives information X_(i,2,0), X_(i,2,1), X_(i,2,2), . . . , X_(i,2,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(1,2,M−2), X_(1,2,M−1) (11301_2) as input, performs processing relating to the information X₂, and outputs data after the computation A_(i,2,0), A_(i,2,1), A_(i,2,2), . . . , A_(i,2,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , A_(i,2,M−2), A_(i,2,M−1) (11303_2).

A processing section 11300_3 relating to the information X₃ includes an X₃ computing section 11302_3. In the tail-biting scheme, when performing encoding with respect to the ith block, the X₃ computing section 11302_3 receives information X_(i,3,0), X_(i,3,1), X_(i,3,2), . . . , X_(i,3,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,3,M−2), X_(i,3,M−1) (11301_3) as input, performs processing relating to the information X₂, and outputs data after the computation A_(i,3,0), A_(i,3,1), A_(i,3,2), . . . , A_(i,3,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , A_(i,3,M−2), A_(i,3,M−1) (11303_3).

The above-mentioned configuration and operation are described in detail later with use of FIG. 114.

The encoder shown in FIG. 139 is a systematic code and thus also outputs the following:

the information X₁ as X_(1,1,0), X_(1,1,1), X_(1,1,2), . . . , X_(i,1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(1,1,M−2), X_(i,1,M−1);

the information X₂ as X_(1,2,0), X_(1,2,1), X_(1,2,2), . . . , X_(1,2,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(1,2,M−2), X_(1,2,M−1); and

the information X₃ as X_(1,3,0), X_(1,3,1), X_(1,3,2), . . . , X_(1,3) j (j=0, 1, 2, . . . , M−3, M−2, M−11), . . . , X_(1,3,M−2), X_(1,3,M−1).

A mod2 adder (an adder for modulo 2, i.e. an exclusive OR computer) 11304 receives data after the computation 11303_1, 11303_2, and 11303_3 as input, adds mod2 (modulo 2, i.e. a remainder after division by two) and outputs data after the addition, i.e. the parity 8803 (P_(i,c)) after the LDPC convolutional coding.

The following describes operation of the mod2 adder (an adder for modulo 2, i.e. an exclusive OR computer) 11304 by taking the ith block at time j (j=0, 1, 2, . . . , M−3, M−2, M−1) as an example.

In the ith block at time j, data after the computation 11303_1, 11303_2, and 11303_3 are A_(i,1,j), A_(i,2,j), and A_(i,3,j), respectively. The mod2 adder (an adder for modulo 2, i.e. an exclusive OR computer) 11304 therefore obtains the parity 8803 (P_(i,c,j)) after the LDPC convolutional coding in the ith block at time j in the following manner.

[Math. 362]

P _(i,c,j) =A _(i,1,j) ⊕A _(i,2,j) ⊕A _(i,3,j)  (Math. 362)

where the symbol ⊕ represents the exclusive OR

The interleaver 8804 receives the parity after the LDPC convolutional coding P_(i,c,0), P_(i,c,1), P_(i,c,2), . . . , P_(i,c,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , P_(i,c,M−2), P_(i,c,M−1) (8803) as input, reorders the parity (after accumulating the parity), and outputs the reordered parity 8805 after the LDPC convolutional coding.

The accumulator 8806 receives the reordered parity 8805 after the LDPC convolutional coding as input, accumulates the parity and outputs the accumulated parity 8807.

In this case, the accumulated parity 8807 becomes the output of the encoder shown in FIG. 139. When the parity in the ith block is represented by P_(i,0), P_(i,1), P_(i,2), . . . , P_(i,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , P_(i,M−2), P_(i,M−1), a codeword of the ith block is X_(i,1,0), X_(i,1,1), X_(i,1,2), . . . , X_(i,1,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,1,M−2), X_(i,1,M−1), X_(i,2,0), X_(i,2,1), X_(i,2,2), . . . , X_(i,2,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,2,M−2), X_(i,2,M−1), X_(i,3,0), X_(i,3,1), X_(i,3,2), . . . , X_(i,3,j) (=0, 1, 2, . . . , M−3, M−2, M−1), . . . , X_(i,3,M−2), X_(i,3,M−1), P_(i,0), P_(i,1), P_(i,2), . . . , P_(i,j) (j=0, 1, 2, . . . , M−3, M−2, M−1), . . . , P_(i,M−2) P_(i,M−1).

In FIG. 139, the encoder for the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme corresponds to a part shown by the reference sign 11305. The following describes operation of the processing section 11300_1 relating to the information X₁, operation of the processing section 11300_2 relating to the information X₂, and operation of the processing section 11300_3 relating to the information X₃ in the encoder 11305 for the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme, with use of FIG. 114.

FIG. 114 shows the configuration of a processing section 11300 _(—) k (k=1, 2, or 3) relating to information X_(k) shown in FIG. 139 in the feedforward LDPC convolutional code based on the parity check polynomial.

In the processing section relating to the information X_(k), a second shift register 11402-2 receives a value output from a first shift register 11402-1 as input. Similarly, a third shift register 11402-3 receives a value output from the second shift register 11402-2 as input. Accordingly, a Yth shift register 11402-Y receives a value output from a (Y−1)th shift register 11402-(Y−1) as input. Here, Y=2, 3, 4, . . . , L_(k)−², L_(k)−1, L_(k).

The first shift register 11402-1 to the L_(k) th shift register 11402-L_(k) each store v_(1,t−i) (i=1, . . . , L_(k)), and, at a timing at which the next input comes in, output a stored value to the adjacent shift register to the right and store a new value output from the adjacent shift register to the left. The initial state of each shift register is the feedforward LDPC convolutional code using the tail-biting scheme, and thus an initial value of the S_(k) th register in the ith block is X_(1,k,M−Sk) (S_(k)=1, 2, 3, 4, . . . , L_(k−2), L_(k)−1, L_(k)).

Weight multipliers 11403-0 to 11403-L_(k) switch a value of h_(k) ^((m)) to zero or one (m=0, 1, . . . , L_(k)) in accordance with a control signal output from a weight control section 11405.

Based on the parity check polynomial for the LDPC convolutional code (or a parity check matrix for the LDPC convolutional code) stored internally, the weight control section 11405 outputs a value of h_(k) ^((m)) at that timing, and supplies it to the weight multipliers 11403-0 to 11403-L_(k).

The mod2 adder (an adder for modulo 2, i.e. an exclusive OR computer) 11406 adds all mod2 (modulo 2, i.e. a remainder after division by two) calculation results to the outputs of the weight multipliers 11403-0 to 11403-L_(k) (i.e. performs exclusive OR computation) to calculate data after the computation A_(i,k,j) (11407) and outputs the data. The data after the computation A_(i,k,j) (11407) corresponds to the data after the computation A_(i,k,j) (11303 _(—) k) shown in FIG. 113.

The first shift register 11402-1 to the L_(k) th shift register 11402-L_(k) each storing v_(1,t−i) (i=1, . . . , L_(k)) set initial values for each block. Therefore, when encoding is performed with respect to the (i+1)th block, an initial value of the S_(k) th register is X_(i+1,k,M−Sk).

By including the processing section relating to the information X_(k) shown in FIG. 114, the encoder 11305 for the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme shown in FIG. 139 performs LDPC-CC encoding in accordance with the parity check polynomial for the feedforward LDPC convolutional code based on the parity check polynomial (or the parity check matrix for the feedforward LDPC convolutional code based on the parity check polynomial).

If the arrangement of rows of the parity check matrix stored by the weight control section 11405 differs on a row-by-row basis, the LDPC-CC encoder 11305 shown in FIG. 139 is a time-varying convolutional encoder. In particular, if the arrangement of rows of the parity check matrix is regularly switched with a certain period (this has been described in the above-mentioned embodiment), the LDPC-CC encoder 11305 is a periodical time-varying convolutional encoder.

The accumulator 8806 shown in FIG. 139 receives the reordered parity 8805 after the LDPC convolutional coding as input. When processing the ith block, the accumulator 8806 sets an initial value of the shift register 8814 to zero. The shift register 8814 sets an initial value for each block. Therefore, if encoding is performed with respect to the (i+1)th block, for example, the initial value of the shift register 8814 is set to zero.

The mod2 adder (an adder for modulo 2, i.e. an exclusive OR computer) 8815 adds mod2 (modulo 2, i.e. a remainder after division by two) to the reordered parity 8805 after the LDPC convolutional coding and the output of the shift register 8814 (i.e. performs exclusive OR computation) and outputs the accumulated parity 8807. As is described in detail later, by using such an accumulator, the column weight (the number of ones in each column) for one column may be set to one and the column weight for the other columns may be set to two in a parity portion of the parity check matrix. This contributes to the achievement of high error-correction capability when decoding using a belief propagation algorithm based on the parity check matrix is used.

Operation of the interleaver 8804 in FIG. 139 is shown in detail by the reference sign 8816. The interleaver, namely an accumulation and reordering section 8818, receives the parity after the LDPC convolutional coding P_(i,c,0), P_(i,c,1), P_(i,c,2), . . . , P_(i,c,M−3), P_(i,c,M−2), P_(i,c,M−1) as input, accumulates the input data and then reorders the data. The accumulation and reordering section 8818 therefore changes the order of outputting the parity P_(i,c,0), P_(i,c,1), P_(i,c,2), . . . , P_(i,c,M−3), P_(i,c,M−2), P_(i,c,M−1). For example, the parity P_(i,c,254), P_(i,c,47), P_(i,c,M−1), . . . , P_(i,c,0), . . . is output in this order.

Although the concatenated code using the accumulator shown in FIG. 139 is dealt with, for example, by Non-Patent Literatures 31 to 35, the above-mentioned decoding using the belief propagation algorithm based on the parity check matrix suitable for high-speed decoding is not used in the concatenated code described in Non-Patent Literatures 31 to 35. Accordingly, difficulties persist in the aforementioned realization of high-speed decoding. By contrast, the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme described in the present embodiment uses the aforementioned feed-forward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme. Therefore, decoding using the belief propagation algorithm based on the parity check matrix suitable for high-speed decoding is applicable, and thus high error-correction capability is achieved. Furthermore, Non-Patent Literatures 31 to do not refer to design of the concatenated code that concatenates the accumulator with the LDPC convolutional code at all.

FIG. 89 shows the configuration of an accumulator that is different from the accumulator 8806 shown in FIG. 139. In FIG. 139, the accumulator shown in FIG. 89 may be used instead of the accumulator 8806. The accumulator 8900 shown in FIG. 89 receives the reordered parity 8805 (8901) after the LDPC convolutional coding shown in FIG. 139 as input, accumulates the parity and outputs the accumulated parity 8807. In FIG. 89, the second shift register 8902-2 receives a value output from the first shift register 8902-1 as input. Similarly, the third shift register 8902-3 receives a value output from the second shift register 8902-2 as input. Accordingly, the Yth shift register 8902-Y receives a value output from the (Y−1)th shift register 8902-(Y−1) as input. Here, Y=2, 3, 4, . . . , R-2, R-1, R.

The first shift register 8902-1 to the Rth shift register 8902-R each store v_(1,t−i) (i=1, . . . , R), and, at a timing at which the next input comes in, output a stored value to the adjacent shift register to the right and store a new value output from the adjacent shift register to the left. When processing the ith block, the accumulator 8900 sets an initial value of each of the first shift register 8902-1 to the Rth shift register 8902-R to zero. The first shift register 8902-1 to the Rth shift register

8902-R each set an initial value for each block. Therefore, if encoding is performed with respect to the (i±1)th block, for example, the initial value of each of the first shift register 8902-1 to the Rth shift register 8902-R is set to zero.

The weight multipliers 8903-1 to 8903-R switch a value of h_(i) ^((m)) (m=1, . . . , R) to zero or one in accordance with a control signal output from the weight control section 8904.

Based on the partial matrix relating to the accumulator in the parity check matrix stored internally, the weight control section 8904 outputs a value of h_(i) ^((m)) at that timing, and supplies it to the weight multipliers 8903-1 to 8903-R.

The mod2 adder (an adder for modulo 2, i.e. an exclusive OR computer) 8905 adds all mod2 (modulo 2, i.e. a remainder after division by two) calculation results to the outputs of the weight multipliers 8903-1 to 8903-R and the reordered parity 8805 (8901) after the LDPC convolutional coding shown in FIG. 139 (i.e. performs exclusive OR computation) and outputs the accumulated parity 8807 (8902). The accumulator 9000 shown in FIG. 90 receives the reordered parity 8805 (8901) after the LDPC convolutional coding shown in FIG. 139 as input, accumulates the parity and outputs the accumulated parity 8807 (8902).

In FIG. 90, components that operate in a similar manner to those in FIG. 89 are identified by the same reference signs as those in FIG. 89. The accumulator 8900 shown in FIG. 89 is different from the accumulator 9000 shown in FIG. 90 in that a value of h_(i) ^((m)) of the weight multiplier 8903-1 shown in FIG. 89 is fixed to one. By using such an accumulator, the column weight (the number of ones in each column) for one column may be set to one and the column weight for the other columns may be set to two in a parity portion of the parity check matrix. This contributes to the achievement of high error-correction capability when decoding using the belief propagation algorithm based on the parity check matrix is used.

The following describes the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme in the encoder 11305 for the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme shown in FIG. 139 in the present embodiment. The time-varying LDPC code based on the parity check polynomial is described in detail in the present specification. Although having been described in Embodiment 15, the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme is described here again. The following describes an example of requirements for the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme for achieving high error-correction capability in the concatenated code in the present embodiment. The LDPC-CC based on the parity check polynomial having a coding rate of ¾ disclosed in Non-Patent Literature 20, in particular, the feedforward LDPC-CC based on the parity check polynomial having a coding rate of ¾ is described first. Information bits of X₁, X₂, X₃, and parity bit P at time j are represented by X_(1,j), X_(2,j), X_(3,j), and P_(j,) respectively. A vector u_(j) at time j is represented by u_(j)=(X_(1,j), X_(2,j), X_(3,j), P_(j)). An encoded sequence is represented by u=(u₀, u₁, . . . , u_(j))^(T). Polynomial of the information bits X₁, X₂, and X₃ is respectively represented by X₁(D), X₂(D), and X₃(D), and polynomial of the parity bit P is represented by P(D), where D is delay operator.

Considered is the parity check polynomial satisfying zero in the following Math in the feedforward LDPC-CC based on the parity check polynomial having a coding rate of ¾.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 363} \right\rbrack} & \; \\ {{{\left( {D^{a_{1,1}} + D^{a_{1,2}} + \cdots + D^{a_{1},r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{a_{2,1}} + D^{a_{2,2}} + \cdots + D^{a_{2},r_{2}} + 1} \right){X_{2}(D)}} + {\left( {D^{a_{3,1}} + D^{a_{3,2}} + \cdots + D^{a_{3},r_{3}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 363} \right) \end{matrix}$

In Math. 363, a_(p,q) (p=1, 2, or 3; q=1, 2, . . . , r_(p)) is a natural number. a_(p,y)≠a_(p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z.

In order to create LDPC-CC having a coding rate of R=¾ and a time-varying period of m, the parity check polynomial satisfying zero based on Math. 363 is prepared. In this case, the ith (i=0, 1, . . . , m−1) parity check polynomial satisfying zero is represented as shown below.

[Math. 364]

A _(X1,i) (D)X ₁(D)+A _(X2,i)(D)X ₂(D)+A _(X3,i) (D)X ₃(D)P(D)=0  (Math. 364)

In Math. 364, the maximum degree for D in A_(Xδ,i)(D) (δ=1, 2, or 3) is represented by Γ_(Xδ,i). The maximum value of Γ_(Xδ,i) is Γ_(i). The maximum value of Γ_(i) (i=0, 1, . . . , m−1) is F. Considering the encoded sequence u, a vector h_(i) corresponding to the ith parity check polynomial is represented as shown below with use of Γ.

[Math. 365]

h _(i) =[h _(i,Γ) ,h _(i,Γ−1) , . . . ,h _(i,1) ,h _(i,0])  (Math. 365)

In Math. 365, h_(i,v) (v=0, 1, . . . , Γ) is a 1×4 vector, and is represented by [α_(i,v,X1), α_(i,v,X2), α_(i,v,X3), β_(i,v)]. This is because the parity check polynomial of Math. 364 has α_(i,v,Xw)D^(v)X_(w)(D) and D⁰P(D) (w=1, 2, 3 and α_(i,v,Xw)β[0, 1]). In this case, the parity check polynomial satisfying zero in Math. 364 has D⁰X₁(D), D⁰X₂(D), D⁰X₃(D), and D⁰P(D), and thus satisfies the following Math.

[Math. 366]

h _(i,0)=[1111]  (Math. 366)

By using Math. 365, the LDPC-CC parity check matrix based on the parity check polynomial having a coding rate of R=¾ and a time-varying period of m is represented as shown below.

$\begin{matrix} {\left\lbrack {{Math}.\mspace{14mu} 367} \right\rbrack \left( {{Math}.\mspace{14mu} 367} \right)} & \; \\ {H = \begin{bmatrix} \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \; & \; \\ \; & h_{0,\Gamma} & h_{0,{\Gamma - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,0} & \; & \; & \; & \; & \; & \; & \; \\ \; & \; & h_{1,\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{1,1} & h_{1,0} & \; & \; & \; & \; & \; & \; \\ \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; \\ \; & \; & \; & \; & h_{{m - 1},\Gamma} & h_{{m - 1},{\Gamma - 1}} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},0} & \; & \; & \; & \; \\ \; & \; & \; & \; & \; & h_{0,\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & h_{0,1} & h_{0,0} & \; & \; & \; \\ \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots & \; & \; \\ \; & \; & \; & \; & \; & \; & \; & h_{{m - 1},\Gamma} & \ldots & \ldots & \ldots & \ldots & \ldots & \ldots & h_{{m - 1},0} & \; \\ \; & \; & \; & \; & \; & \; & \; & \; & \ddots & \; & \; & \; & \; & \; & \; & \ddots \end{bmatrix}} & \; \end{matrix}$

In Math. 367, in the case of an infinite LDPC-CC, Λ(k)=Λ(k+m) for ^(∀)k. Λ(k) corresponds to h_(i) in the kth row of the parity check matrix k.

Regardless of whether or not to perform the tail-biting, assuming that the Yth row of the LDPC-CC parity check matrix based on the parity check polynomial having a time-varying period of m corresponds to the parity check polynomial satisfying the zeroth zero in the LDPC-CC having a time-varying period of m, the (Y+1)th row of the parity check matrix corresponds to the parity check polynomial satisfying a first zero in the LDPC-CC having a time-varying period of m, the (Y+2)th row of the parity check matrix corresponds to the parity check polynomial satisfying a second zero in the LDPC-CC having a time-varying period of m, . . . , the (Y+j)th row of the parity check matrix corresponds to the parity check polynomial satisfying a jth zero in the LDPC-CC having a time-varying period of m (j=0, 1, 2, 3, . . . , m−3, m−2, m−1), . . . , and the (Y+m−1)th row of the parity check matrix corresponds to the parity check polynomial satisfying a (m−1)th zero in the LDPC-CC having a time-varying period of m.

Although Math. 363 is used to describe the above-mentioned base parity check polynomial, the parity check polynomial is not limited to that satisfies Math.

363. For example, the parity check polynomial satisfying zero not in Math. 363 but in Math. 368 may be used.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 368} \right\rbrack} & \; \\ {{{\left( {D^{a_{1,1}} + D^{a_{1,2}} + \cdots + D^{a_{1},r_{1}}} \right){X_{1}(D)}} + {\left( {D^{a_{2,1}} + D^{a_{2,2}} + \cdots + D^{a_{2},r_{2}}} \right){X_{2}(D)}} + {\left( {D^{a_{3,1}} + D^{a_{3,2}} + \cdots + D^{a_{3},r_{3}}} \right){X_{3}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 368} \right) \end{matrix}$

In Math. 368, a_(p,q) (p=1, 2, or 3; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. a_(p,y)≠a_(p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z.

In order to achieve high error-correction capability in the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme described in the present embodiment, r₁, r₂, and r₃ are each preferably equal to or greater than three in the parity check polynomial satisfying zero in Math. 363, and preferably equal to or greater than four in the parity check polynomial satisfying zero in Math. 368.

Therefore, with reference to Math. 363, the gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero (see Math. 128) in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q used in the concatenated code in the present embodiment is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 369} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \cdots + D^{{a\# g},1,r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \cdots + D^{{a\# g},2,r_{2}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \cdots + D^{{a\# g},3,r_{3}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 369} \right) \end{matrix}$

In Math. 369, a_(#g,p,q) (p=1, 2, or 3; q=1, 2, . . . , r_(p)) is a natural number. a_(#g,p,y)≠a_(#g,p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z. If r₁, r₂, and r₃ are each set to be equal to or greater than three, high error-correction capability is achieved. The parity check polynomial satisfying zero in the feedforward periodical

LDPC convolutional code based on the parity check polynomial having a time-varying period of q is therefore provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 370} \right\rbrack} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} {zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 0}},3,1} + D^{{a{\# 0}},3,2} + \ldots + D^{{a{\# 0}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 370}\text{-}0} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} {first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 1}},3,1} + D^{{a{\# 1}},3,2} + \ldots + D^{{a{\# 1}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 370}\text{-}1} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} {second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 2}},3,1} + D^{{a{\# 2}},3,2} + \ldots + D^{{a{\# 2}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 370}\text{-}2} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 370}\text{-}g} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} \left( {q - 2} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + D^{{a\# {({q - 2})}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + D^{{a\# {({q - 2})}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 2})}},3,1} + D^{{a\# {({q - 2})}},3,2} + \ldots + D^{{a\# {({q - 2})}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 370}\text{-}\left( {q - 2} \right)} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} \left( {q - 1} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + D^{{a\# {({q - 1})}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + D^{{a\# {({q - 1})}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 1})}},3,1} + D^{{a\# {({q - 1})}},3,2} + \ldots + D^{{a\# {({q - 1})}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 370}\text{-}\left( {q - 1} \right)} \right) \end{matrix}$

In this case, r₁, r₂, and r₃ are each set to be equal to or greater than three. In Math. 370-0 to Math. 370-(q−1), the number of terms of each of X₁(D), X₂(D), and X₃(D) is four or more in any of the parity check polynomials satisfying zero.

With reference to Math. 369, the gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero (see Math. 128) in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q used in the concatenated code in the present embodiment is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 371} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \cdots + D^{{a\# g},1,r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \cdots + D^{{a\# g},2,r_{2}}} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \cdots + D^{{a\# g},3,r_{3}}} \right){X_{3}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 371} \right) \end{matrix}$

In Math. 371, a_(#g,p,q) (p=1, 2, or 3; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. a_(#g,p,y)≠a_(#g,p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z. If r₁, r₂, and r₃ are each set to be equal to or greater than four, high error-correction capability is achieved. The parity check polynomial satisfying zero in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q is therefore provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 372} \right\rbrack} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} {zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 0}},3,1} + D^{{a{\# 0}},3,2} + \ldots + D^{{a{\# 0}},3,_{r_{3}}}} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 372}\text{-}0} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} {first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 1}},3,1} + D^{{a{\# 1}},3,2} + \ldots + D^{{a{\# 1}},3,_{r_{3}}}} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 372}\text{-}1} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} {second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 2}},3,1} + D^{{a{\# 2}},3,2} + \ldots + D^{{a{\# 2}},3,_{r_{3}}}} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 372}\text{-}2} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} {g{th}}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,_{r_{3}}}} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 372}\text{-}g} \right) \\ {\mspace{79mu} \vdots} & \; \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} \left( {q - 2} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + D^{{a\# {({q - 2})}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + D^{{a\# {({q - 2})}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 2})}},3,1} + D^{{a\# {({q - 2})}},3,2} + \ldots + D^{{a\# {({q - 2})}},3,_{r_{3}}}} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 372}\text{-}\left( {q - 2} \right)} \right) \\ {\mspace{79mu} {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {{the}\mspace{14mu} \left( {q - 1} \right){th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + D^{{a\# {({q - 1})}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + D^{{a\# {({q - 1})}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 1})}},3,1} + D^{{a\# {({q - 1})}},3,2} + \ldots + D^{{a\# {({q - 1})}},3,_{r_{3}}}} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 372}\text{-}\left( {q - 1} \right)} \right) \end{matrix}$

In this case, r₁, r₂, and r₃ are each set to be equal to or greater than four. In Math. 372-0 to Math. 372-(q−1), the number of terms of each of X₁(D), X₂(D), and X₃(D) is four or more in any of the parity check polynomials satisfying zero.

As described above, in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q used in the concatenated code in the present embodiment, if the number of terms of each of X₁(D), X₂(D), and X₃(D) is four or more in any of q parity check polynomials satisfying zero, it is highly likely that high error-correction capability is achieved.

Since the number of terms of each of X₁(D), X₂(D), and X₃(D) is four or more in order to satisfy the conditions described in Embodiment 1, the time-varying period is required to be equal to or greater than four. If the condition is not satisfied, any of the conditions described in Embodiment 1 may not be satisfied, and thus the possibility of achieving high error-correction capability can be reduced.

For example, as described in Embodiment 6, in order to achieve the effect of increasing the time-varying period at the time of making the Tanner graph, the number of terms of each of X₁(D), X₂(D), and X₃(D) is four or more. The time-varying period is therefore preferably an odd number. Other effective conditions are as follows.

(1) The time-varying period q is a prime number.

(2) The time-varying period q is an odd number and the number of divisors of q is small.

(3) The time-varying period q is α×β

where α and β are odd numbers other than one and are prime numbers.

(4) The time-varying period q is α^(n),

where α is an odd number other than one and is a prime number, and n is an integer equal to or greater than two.

(5) The time-varying period q is α×β×γ,

where α, β and γ are odd numbers other than one and are prime numbers.

(6) The time-varying period q is α×β×γ×δ,

where α, β, γ and δ are odd numbers other than one and are prime numbers. Since the effect described in Embodiment 6 is achieved as the time-varying period q grows large, it is not always true that a code having high error-correction capability is not obtained when the time-varying period q is an even number.

For example, conditions as shown below may be satisfied when the time-varying period q is an even number:

(7) The time-varying period q is 2^(g)×K, where K is a prime number, and g is an integer equal to or greater than one.

(8) The time-varying period q is 2^(g)×L, where L is an odd number and the number of divisors of L is small, and g is an integer equal to or greater than one.

(9) The time-varying period q is 2^(g)×α×β,

where α and β are odd numbers other than one and are prime numbers, and g is an integer equal to or greater than one.

(10) The time-varying period q is 2^(g)×α^(n),

where α is an odd number other than one and is a prime number, n is an integer equal to or greater than two, and g is an integer equal to or greater than one.

(11) The time-varying period q is 2^(g)×α×β×γ,

where α, β and γ are odd numbers other than one and are prime numbers, and g is an integer equal to or greater than one.

(12) The time-varying period q is 2^(g)×α×β×γ×δ,

where α, β, γ and 8 are odd numbers other than one and are prime numbers, and g is an integer equal to or greater than one.

However, when the time-varying period q is an odd number not satisfying any of the above-mentioned conditions (1) to (6) or an even number not satisfying any of the above-mentioned conditions (7) to (12), high error-correction capability can be achieved.

The following describes the tail-biting scheme for the feedforward time-varying LDPC-CC based on the parity check polynomial (by way of example, the parity check polynomial in Math. 369 is used).

[Tail-biting Scheme]

The gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero (see Math. 128) in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q used in the concatenated code in the present embodiment described above is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 373} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \cdots + D^{{a\# g},1,r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \cdots + D^{{a\# g},2,r_{2}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \cdots + D^{{a\# g},3,r_{3}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 373} \right) \end{matrix}$

In Math. 373, a_(#g,p,q) (p=1, 2, or 3; q=1, 2, . . . , r_(p)) is a natural number. a_(#g,p,y)≠a_(#g,p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z. Here, r₁, r₂, and r₃ are each equal to or greater than three. Considering in a similar manner to Math. 30, Math. 34 and Math. 47, assuming a sub-matrix (a vector) corresponding to Math. 373 to be H_(g), the gth sub-matrix can be represented as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 374} \right\rbrack & \; \\ {H_{g} = \left\{ {{H^{\prime}g},\underset{\underset{4}{}}{1111}} \right\}} & \left( {{Math}.\mspace{14mu} 374} \right) \end{matrix}$

In Math. 374, the four consecutive ones correspond to the terms of D⁰X₁(D)=X₁(D), D⁰X₂(D)=X₂(D), D⁰X₃(D)=X₃(D), and D⁰P(D)=P(D) in Math. 373. The parity check matrix H can be represented as shown in FIG. 140. As shown in FIG. 140, in the parity check matrix H, a configuration is employed in which a sub-matrix is shifted four columns to the right between the ith row and (i+1)th row (see FIG. 140). It is assumed that data of the information X₁, X₂, X₃ and the parity P at time k are respectively X_(1,k), X_(2,k), X_(3,k), and P_(k). When a transmission vector u is assumed to be u=(X_(1,0), X_(2,0), X_(3,0), P₀, X_(1,1), X_(2,1), X_(3,1), P₁, P, . . . , X_(1,k), X_(2,k), X_(3,k), P_(k), . . . )^(T) Hu=0 holds true (the zero in Hu=0 here indicates that all elements of the vector are zeros).

Non-Patent Literature 12 discloses the parity check matrix when tail-biting is performed. The parity check matrix is as shown in Math. 135. In Math. 135, H represents the parity check matrix and H^(T) represents a syndrome former. H^(T) _(i)(t) (i=0, 1, . . . , M_(s)) represents a sub-matrix of c×(c−b), and M_(s) represents a memory size.

According to FIG. 140 and Math. 135, the following conditions are important for the parity check matrix H required at the time of decoding in order to achieve high error-correction capability in the LDPC-CC having a time-varying period of q and coding rate of ¾ based on the parity check polynomial.

<Condition #20-1>

-   -   The number of rows of the parity check matrix is a multiple of         the time-varying period q.     -   The number of columns of the parity check matrix is therefore a         multiple of 4×q. In this case, a log-likelihood ratio (for         example) required at the time of decoding is a log-likelihood         ratio of bits of the multiple of 4×q.

The parity check polynomial satisfying zero in the LDPC-CC having a time-varying period of q and a coding rate of ¾ required to satisfy Condition #20-1 is not limited to that based on Math. 373, and may be the periodical time-varying LDPC-CC having a period of q based on Math. 371.

Since the periodical time-varying LDPC-CC having a period of q is a type of the feedforward convolutional code, the encoding method disclosed in Non-Patent Literature 10 and Non-Patent Literature 11 is applicable to the encoding method used when tail-biting is performed. The procedure is as shown below.

<Procedure 20-1> For example, in the periodical time-varying LDPC-CC having a period q defined in Math. 373, P(D) is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 375} \right\rbrack} & \; \\ {{P(D)} = {{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \cdots + D^{{a\# g},1,r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \cdots + D^{{a\# g},2,r_{2}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \cdots + D^{{a\# g},3,r_{3}} + 1} \right){X_{3}(D)}}}} & \left( {{Math}.\mspace{14mu} 375} \right) \end{matrix}$

Math. 375 is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 376} \right\rbrack} & \; \\ {{P\lbrack i\rbrack} = {{X_{1}\lbrack i\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# g},1,1}} \right\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# g},1,2}} \right\rbrack} \oplus \cdots \oplus {X_{1}\left\lbrack {i - a_{{\# g},1,r_{1}}} \right\rbrack} \oplus {X_{2}\lbrack i\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,1}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,2}} \right\rbrack} \oplus \cdots \oplus {X_{2}\left\lbrack {i - a_{{\# g},2,r_{2}}} \right\rbrack} \oplus {X_{3}\lbrack i\rbrack} \oplus {X_{3}\left\lbrack {i - a_{{\# g},3,1}} \right\rbrack} \oplus {X_{3}\left\lbrack {i - a_{{\# g},3,2}} \right\rbrack} \oplus \cdots \oplus {X_{3}\left\lbrack {i - a_{{\# g},3,r_{3}}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 376} \right) \end{matrix}$

where the symbol ⊕ represents the exclusive OR

Since a coding rate of the periodical time-varying LDPC-CC having a feedforward period of q based on the parity check polynomial is ¾ when tail-biting is performed as described above, assuming that the number of bits of each of the information X₁, the information X₂, and the information X₃ in one block is M bits, the number of bits of the parity in one block is M bits in the periodical time-varying LDPC-CC having the feedforward period of q based on the parity check polynomial when tail-biting is performed. A codeword u_(j) of the jth block is therefore represented by u_(j)=(X_(j,1,0), X_(j,2,0), X_(j,3,0), P_(j,0), X_(j,1,1), X_(j,2,1), X_(j,3,1), P_(j,1), . . . , X_(j,1,i), X_(j,2,i), X_(j,3,i), P_(j,i), . . . , X_(j,1,M−2), X_(j,2,M−2), X_(j,3,M−2), P_(j,M−2), X_(j,1,M−1), X_(j,2,M−1), X_(j,3,M−1)), P_(j,M−1)). Here, i=0, 1, 2, . . . , M−2, M−1. X_(j,k,i) represents information X_(k) (k=1, 2, or 3) at time i of the jth block. P_(j,i) represents parity P at time i of the jth block in the periodical time-varying LDPC-CC having the feedforward period of q based on the parity check polynomial when tail-biting is performed.

Therefore, when i%q=k (% represents the modulo operator) at time i of the jth block, parity at time i of the jth block is obtained by assuming that g=k in Math. 375 and Math. 376. Therefore, when i%q=k, parity P_(j,i) at time i of the jth block is obtained by using the following Math.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 377} \right\rbrack} & \; \\ {{P\lbrack i\rbrack} = {{X_{1}\lbrack i\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# k},1,1}} \right\rbrack} \oplus {X_{1}\left\lbrack {i - a_{{\# k},1,2}} \right\rbrack} \oplus \cdots \oplus {X_{1}\left\lbrack {i - a_{{\# k},1,r_{1}}} \right\rbrack} \oplus {X_{2}\lbrack i\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# k},2,1}} \right\rbrack} \oplus {X_{2}\left\lbrack {i - a_{{\# k},2,2}} \right\rbrack} \oplus \cdots \oplus {X_{2}\left\lbrack {i - a_{{\# k},2,r_{2}}} \right\rbrack} \oplus {X_{3}\lbrack i\rbrack} \oplus {X_{3}\left\lbrack {i - a_{{\# k},3,1}} \right\rbrack} \oplus {X_{3}\left\lbrack {i - a_{{\# k},3,2}} \right\rbrack} \oplus \cdots \oplus {X_{3}\left\lbrack {i - a_{{\# k},3,r_{3}}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 377} \right) \end{matrix}$

where the symbol ⊕ represents the exclusive OR

Therefore, when i%q=k, parity P_(j,i) at time i of the jth block is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 378} \right\rbrack} & \; \\ {P_{j,i} = {X_{j,1,i} \oplus X_{j,1,{Z\; 1},1} \oplus X_{j,1,{Z\; 1},2} \oplus \cdots \oplus X_{j,1,{Z\; 1},r_{1}} \oplus X_{j,2,i} \oplus X_{j,2,{Z\; 2},1} \oplus X_{j,2,{Z\; 2},2} \oplus \cdots \oplus X_{j,2,{Z\; 2},r_{2}} \oplus X_{j,3,i} \oplus X_{j,3,{Z\; 3},1} \oplus X_{j,3,{Z\; 3},2} \oplus \cdots \oplus X_{j,3,{Z\; 3},r_{3}}}} & \left( {{Math}.\mspace{14mu} 378} \right) \end{matrix}$

The following Math holds true.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 379} \right\rbrack & \; \\ {Z_{1,1} = {i - a_{{\# k},11}}} & \left( {{{Math}.\mspace{14mu} 379}\text{-}1\text{-}1} \right) \\ {Z_{1,2} = {i - a_{{\# k},1,2}}} & \left( {{{Math}.\mspace{14mu} 379}\text{-}1\text{-}2} \right) \\ \vdots & \; \\ {Z_{1,s} = {i - {a_{{\# k},1,s}\mspace{14mu} \left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}} & \left( {{{Math}.\mspace{14mu} 379}\text{-}1\text{-}s} \right) \\ \vdots & \; \\ {Z_{1,r_{1}} = {i - a_{{\# k},1,_{r_{1}}}}} & \left( {{{Math}.\mspace{14mu} 379}\text{-}1\text{-}r_{1}} \right) \\ {Z_{2,1} = {i - a_{{\# k},2,1}}} & \left( {{{Math}.\mspace{14mu} 379}\text{-}2\text{-}1} \right) \\ {Z_{2,2} = {i - a_{{\# k},2,2}}} & \left( {{{Math}.\mspace{14mu} 379}\text{-}2\text{-}2} \right) \\ \vdots & \; \\ {Z_{2,s} = {i - {a_{{\# k},2,s}\mspace{14mu} \left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}} & \left( {{{Math}.\mspace{14mu} 379}\text{-}2\text{-}s} \right) \\ \vdots & \; \\ {Z_{1,r_{2}} = {i - a_{{\# k},2,_{r_{2}}}}} & \left( {{{Math}.\mspace{14mu} 379}\text{-}1\text{-}r_{2}} \right) \\ {Z_{3,1} = {i - a_{{\# k},3,1}}} & \left( {{{Math}.\mspace{14mu} 379}\text{-}3\text{-}1} \right) \\ {Z_{3,2} = {i - a_{{\# k},3,2}}} & \left( {{{Math}.\mspace{14mu} 379}\text{-}3\text{-}2} \right) \\ \vdots & \; \\ {{Z_{3,s} = {i - {a_{{\# k},3,s}\mspace{14mu} \left( {{s = 1},2,\ldots \mspace{14mu},{r_{3} - 1},r_{3}} \right)}}}\vdots} & \left( {{{Math}.\mspace{14mu} 379}\text{-}3\text{-}s} \right) \\ {Z_{3,r_{3}} = {i - a_{{\# k},3,_{r_{3}}}}} & \left( {{{Math}.\mspace{14mu} 379}\text{-}3\text{-}r_{3}} \right) \end{matrix}$

Since tail-biting is performed, however, the parity P_(j,i) at time i of the jth block is obtained from a group of mathematical expressions in Math. 377 (Math. 378) and Math. 380.

$\begin{matrix} \left\lbrack {{{Math}.\mspace{14mu} 380}\text{-}1} \right\rbrack & \; \\ {{{{When}\mspace{14mu} Z_{1,1}} \geq {0\text{:}}}{Z_{1,1} = {i -_{{a\# k},1,1}}}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}1\text{-}1\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{1,1}} < {0\text{:}}}{Z_{1,1} = {i -_{{a\# k},1,1}{+ M}}}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}1\text{-}1\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{1,2}} \geq {0\text{:}}}{Z_{1,2} = {i -_{{a\# k},1,2}}}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}1\text{-}2\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{1,2}} < {0\text{:}}}{Z_{1,2} = {i -_{{a\# k},1,2}{+ M}}}\vdots} & \left( {{{Math}.\mspace{14mu} 380}\text{-}1\text{-}2\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{1,s}} \geq {0\text{:}}}{Z_{1,s} = {i -_{{a\# k},1,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}1\text{-}s\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{1,s}} < {0\text{:}}}\begin{matrix} {Z_{1,s} = {i -_{{a\# k},1,s}{+ {M\left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}}} \\ {\mspace{104mu} \vdots} \end{matrix}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}1\text{-}s\text{-}2} \right) \end{matrix}$

$\begin{matrix} \left\lbrack {{{Math}.\mspace{14mu} 380}\text{-}2} \right\rbrack & \; \\ {{{{When}\mspace{14mu} Z_{1,{r\; 1}}} \geq {0\text{:}}}{Z_{1,r_{1}} = {i - a_{{\# k},1,r_{1}}}}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}1\text{-}r_{1}\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{1,{r\; 1}}} < {0\text{:}}}{Z_{1,r_{1}} = {i - a_{{\# k},1,r_{1}} + M}}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}1\text{-}r_{1}\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{2,1}} \geq {0\text{:}}}{Z_{2,1} = {i - a_{{\# k},2,1}}}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}2\text{-}1\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{2,1}} < {0\text{:}}}{Z_{2,1} = {i - a_{{\# k},2,1} + M}}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}2\text{-}1\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{2,2}} \geq {0\text{:}}}{Z_{2,2} = {i - a_{{\# k},2,2}}}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}2\text{-}2\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{2,2}} < {0\text{:}}}{Z_{2,2} = {i - a_{{\# k},2,2} + M}}\vdots} & \left( {{{Math}.\mspace{14mu} 380}\text{-}2\text{-}2\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{2,s}} \geq {0\text{:}}}\begin{matrix} {Z_{2,s} = {i - a_{{\# k},2,s}}} & \left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right) \end{matrix}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}2\text{-}s\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{2,s}} < {0\text{:}}}{Z_{2,s} = {i - a_{{\# k},2,s} + {M\left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}}\vdots} & \left( {{{Math}.\mspace{14mu} 380}\text{-}2\text{-}s\text{-}2} \right) \end{matrix}$

$\begin{matrix} \left\lbrack {{{Math}.\mspace{14mu} 380}\text{-}2} \right\rbrack & \; \\ {{{{When}\mspace{14mu} Z_{2,{r\; 2}}} \geq {0\text{:}}}{Z_{2,r_{2}} = {i - a_{{\# k},2,r_{2}}}}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}2\text{-}r_{2}\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{2,{r\; 2}}} < {0\text{:}}}Z_{2,r_{2}} = {i - a_{{\# k},2,r_{2}} + M}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}2\text{-}r_{2}\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{3,1}} \geq {0\text{:}}}{Z_{3,1} = {i - a_{{\# k},3,1}}}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}3\text{-}1\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{3,1}} < {0\text{:}}}{Z_{3,1} = {i - a_{{\# k},3,1} + M}}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}3\text{-}1\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{3,2}} \geq {0\text{:}}}{Z_{3,2} = {i - a_{{\# k},3,2}}}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}3\text{-}2\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{3,2}} < {0\text{:}}}{Z_{3,2} = {i - a_{{\# k},3,2} + M}}\vdots} & \left( {{{Math}.\mspace{14mu} 380}\text{-}3\text{-}2\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{3,s}} \geq {0\text{:}}}\begin{matrix} {Z_{3,s} = {i - a_{{\# k},3,s}}} & \left( {{s = 1},2,\ldots \mspace{14mu},{r_{3} - 1},r_{3}} \right) \end{matrix}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}3\text{-}s\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{3,s}} < {0\text{:}}}{Z_{3,s} = {i - a_{{\# k},3,s} + {M\left( {{s = 1},2,\ldots \mspace{14mu},{r_{3} - 1},r_{3}} \right)}}}\vdots} & \left( {{{Math}.\mspace{14mu} 380}\text{-}3\text{-}s\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{3,{r\; 3}}} \geq {0\text{:}}}{Z_{3,r_{3}} = {i - a_{{\# k},3,r_{3}}}}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}3\text{-}r_{3}\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{3,{r\; 3}}} < {0\text{:}}}{Z_{3,r_{3}} = {i - a_{{\# k},3,r_{3}} + M}}} & \left( {{{Math}.\mspace{14mu} 380}\text{-}3\text{-}r_{3}\text{-}1} \right) \end{matrix}$

<Procedure 20-1′>

Considered is the periodical time-varying LDPC-CC having a period q defined in Math. 371, which is different from the periodical time-varying LDPC-CC having a period q defined in Math. 375. In this case, description of tail-biting is also made with respect to Math. 371. P(D) is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 381} \right\rbrack} & \; \\ {{P(D)} = {{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \cdots + D^{{a\# g},1,r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \cdots + D^{{a\# g},2,r_{2}}} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \cdots + D^{{a\# g},3,r_{3}}} \right){X_{3}(D)}}}} & \left( {{Math}.\mspace{14mu} 381} \right) \end{matrix}$

Math. 381 is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 382} \right\rbrack} & \; \\ {{P\lbrack i\rbrack} = {{X_{1}\left\lbrack \; {i - a_{{\# g},1,1}} \right\rbrack} \oplus {X_{1}\left\lbrack \mspace{11mu} {i - a_{{\# g},1,2}} \right\rbrack} \oplus \mspace{11mu} \ldots \mspace{11mu} \oplus {X_{1}\left\lbrack \; {i - a_{{\# g},1,_{r_{1}}}} \right\rbrack} \oplus {X_{2}\left\lbrack \; {i - a_{{\# g},2,1}} \right\rbrack} \oplus {X_{2}\left\lbrack \mspace{11mu} {i - a_{{\# g},2,2}} \right\rbrack} \oplus \mspace{11mu} \ldots \mspace{11mu} \oplus {X_{2}\left\lbrack \; {i - a_{{\# g},2,_{r_{2}}}} \right\rbrack} \oplus {X_{3}\left\lbrack \; {i - a_{{\# g},3,1}} \right\rbrack} \oplus {X_{2}\left\lbrack \mspace{11mu} {i - a_{{\# g},3,2}} \right\rbrack} \oplus \mspace{11mu} \ldots \mspace{11mu} \oplus {X_{2}\left\lbrack \; {i - a_{{\# g},3,_{r_{3}}}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 382} \right) \end{matrix}$

where the symbol ⊕ represents the exclusive OR

Since a coding rate of the periodical time-varying LDPC-CC having a feedforward period of q based on the parity check polynomial is ¾ when tail-biting is performed, assuming that the number of bits of each of the information X₁, the information X₂, and the information X₃ in one block is M bits, the number of bits of the parity in one block is M bits in the periodical time-varying LDPC-CC having the feedforward period of q based on the parity check polynomial when tail-biting is performed. A codeword u_(j) of the jth block is therefore represented by u_(j)=(X_(j,1,0), X_(j,2,0), X_(j,3,0), P_(j,0), X_(j,1,1), X_(j,2,1), X_(j,3,1), P_(j,1), . . . , X_(j,1,i), X_(j,2,i), X_(j,3,i), P_(j,i), . . . , X_(j,1,M−2), X_(j,2,M−2), X_(j,3,M−2), P_(j,M−2), X_(j,1,M−1), X_(j,2,M−1), X_(j,3,M−1), P_(j,M−1)). Here, i=0, 1, 2, . . . , M−2, M−1. X_(j,k,i) represents information X_(k) (k=1, 2, or 3) at time i of the jth block. P_(j,i) represents parity P at time i of the jth block in the periodical time-varying LDPC-CC having the feedforward period of q based on the parity check polynomial when tail-biting is performed.

Therefore, when i%q=k (% represents the modulo operator) at time i of the jth block, parity at time i of the jth block is obtained by assuming that g=k in Math. 381 and Math. 382. Therefore, when i%q=k, parity P_(j,i) at time i of the jth block is obtained by using the following Math.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 383} \right\rbrack} & \; \\ {{P\lbrack i\rbrack} = {{X_{1}\left\lbrack \; {i - a_{{\# k},1,1}} \right\rbrack} \oplus {X_{1}\left\lbrack \mspace{11mu} {i - a_{{\# k},1,2}} \right\rbrack} \oplus \mspace{11mu} \ldots \mspace{11mu} \oplus {X_{1}\left\lbrack \; {i - a_{{\# k},1,_{r_{1}}}} \right\rbrack} \oplus {X_{2}\left\lbrack \; {i - a_{{\# k},2,1}} \right\rbrack} \oplus {X_{2}\left\lbrack \mspace{11mu} {i - a_{{\# k},2,2}} \right\rbrack} \oplus \mspace{11mu} \ldots \mspace{11mu} \oplus {X_{2}\left\lbrack \; {i - a_{{\# k},2,_{r_{2}}}} \right\rbrack} \oplus {X_{3}\left\lbrack \; {i - a_{{\# k},3,1}} \right\rbrack} \oplus {X_{2}\left\lbrack \mspace{11mu} {i - a_{{\# k},3,2}} \right\rbrack} \oplus \mspace{11mu} \ldots \mspace{11mu} \oplus {X_{2}\left\lbrack \; {i - a_{{\# k},3,_{r_{3}}}} \right\rbrack}}} & \left( {{Math}.\mspace{14mu} 383} \right) \end{matrix}$

where the symbol ⊕ represents the exclusive OR

Therefore, when i%q=k, parity P_(j,i) at time i of the jth block is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 384} \right\rbrack} & \; \\ {P_{j,i} = {X_{j,1,{Z\; 1},1} \oplus X_{j,1,{Z\; 1},2} \oplus \mspace{11mu} \ldots \mspace{11mu} \oplus X_{j,1,{Z\; 1},_{r_{1}}} \oplus X_{j,2,{Z\; 2},1} \oplus X_{j,2,{Z\; 2},2} \oplus \mspace{11mu} \ldots \mspace{11mu} \oplus X_{j,2,{Z\; 2},_{r_{2}}} \oplus X_{j,3,{Z\; 3},1} \oplus X_{j,3,{Z\; 3},2} \oplus \mspace{11mu} \ldots \mspace{11mu} \oplus X_{j,3,{Z\; 3},_{r_{3}}}}} & \left( {{Math}.\mspace{14mu} 384} \right) \end{matrix}$

The following Math holds true.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 385} \right\rbrack & \; \\ {Z_{1,1} = {i -_{{a\# k},1,1}}} & \left( {{{Math}.\mspace{14mu} 385}\text{-}1\text{-}1} \right) \\ {Z_{1,2} = {i -_{{a\# k},1,2}\vdots}} & \left( {{{Math}.\mspace{14mu} 385}\text{-}1\text{-}2} \right) \\ {{Z_{1,s} = {i -_{{a\# k},1,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}\vdots} & \left( {{{Math}.\mspace{14mu} 385}\text{-}1\text{-}s} \right) \\ {Z_{1,_{r\; 1}} = {i -_{{a\# k},1,_{r\; 1}}}} & \left( {{{Math}.\mspace{14mu} 385}\text{-}1\text{-}r_{1}} \right) \\ {Z_{2,1} = {i -_{{a\# k},2,1}}} & \left( {{{Math}.\mspace{14mu} 385}\text{-}2\text{-}1} \right) \\ {Z_{2,2} = {i -_{{a\# k},2,2}\vdots}} & \left( {{{Math}.\mspace{14mu} 385}\text{-}2\text{-}2} \right) \\ {{Z_{2,s} = {i -_{{a\# k},2,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}\vdots} & \left( {{{Math}.\mspace{14mu} 385}\text{-}2\text{-}s} \right) \\ {Z_{2,_{r\; 2}} = {i -_{{a\# k},2,_{r\; 2}}}} & \left( {{{Math}.\mspace{14mu} 385}\text{-}2\text{-}r_{2}} \right) \\ {Z_{3,1} = {i -_{{a\# k},3,1}}} & \left( {{{Math}.\mspace{14mu} 385}\text{-}3\text{-}1} \right) \\ {Z_{3,2} = {i -_{{a\# k},3,2}\vdots}} & \left( {{{Math}.\mspace{14mu} 385}\text{-}3\text{-}2} \right) \\ {{Z_{3,s} = {i -_{{a\# k},3,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{3} - 1},r_{3}} \right)}}\vdots} & \left( {{{Math}.\mspace{14mu} 385}\text{-}3\text{-}s} \right) \\ {Z_{3,_{r\; 3}} = {i -_{{a\# k},3,_{r\; 3}}}} & \left( {{{Math}.\mspace{14mu} 385}\text{-}3\text{-}r_{3}} \right) \end{matrix}$

Since tail-biting is performed, however, the parity P_(j,i) at time i of the jth block is obtained from a group of mathematical expressions in Math. 383 (Math. 384) and Math. 386.

$\begin{matrix} \left\lbrack {{{Math}.\mspace{14mu} 386}\text{-}1} \right\rbrack & \; \\ {{{{When}\mspace{14mu} Z_{1,1}} \geq {0\text{:}}}{Z_{1,1} = {i -_{{a\# k},1,1}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}1\text{-}1\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{1,1}} < {0\text{:}}}{Z_{1,1} = {i -_{{a\# k},1,1}{+ M}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}1\text{-}1\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{1,2}} \geq {0\text{:}}}{Z_{1,2} = {i -_{{a\# k},1,2}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}1\text{-}2\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{1,2}} < {0\text{:}}}{Z_{1,2} = {i -_{{a\# k},1,2}{+ M}}}\vdots} & \left( {{{Math}.\mspace{14mu} 386}\text{-}1\text{-}2\text{-}2} \right) \\ {{{{When}\mspace{14mu} Z_{1,s}} \geq {0\text{:}}}{Z_{1,s} = {i -_{{a\# k},1,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}1\text{-}s\text{-}1} \right) \\ {{{{When}\mspace{14mu} Z_{1,s}} < {0\text{:}}}\begin{matrix} {Z_{1,s} = {i -_{{a\# k},1,s}{+ {M\left( {{s = 1},2,\ldots \mspace{14mu},{r_{1} - 1},r_{1}} \right)}}}} \\ {\mspace{104mu} \vdots} \end{matrix}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}1\text{-}s\text{-}2} \right) \end{matrix}$

$\begin{matrix} {\left\lbrack {{{Math}.\mspace{14mu} 386}\text{-}2} \right\rbrack {{{When}\mspace{14mu} Z_{1,{r\; 1}}} \geq {0\text{:}}}} & \; \\ {{Z_{1,_{r_{1}}} = {i - a_{{\# k},1,_{r_{1}}}}}{{{When}\mspace{14mu} Z_{1,{r\; 1}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}1\text{-}r_{1}\text{-}1} \right) \\ {{Z_{1,_{r\; 1}} = {i - a_{{\# k},1,_{r\; 1}} + M}}{{{When}\mspace{14mu} Z_{2,1}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}1\text{-}r_{1}\text{-}2} \right) \\ {{Z_{2,1} = {i - a_{{\# k},2,1}}}{{{When}\mspace{14mu} Z_{2,1}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}2\text{-}1\text{-}1} \right) \\ {{Z_{2,1} = {i - a_{{\# k},2,1} + M}}{{{When}\mspace{14mu} Z_{2,2}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}2\text{-}1\text{-}2} \right) \\ {{Z_{2,2} = {i - a_{{\# k},2,2}}}{{{When}\mspace{20mu} Z_{2,2}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}2\text{-}2\text{-}1} \right) \\ {{Z_{2,2} = {i - a_{{\# k},2,2} + M}}\vdots {{{When}\mspace{14mu} Z_{2,s}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}2\text{-}2\text{-}2} \right) \\ {{Z_{2,s} = {i - {a_{{\# k},2,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}}{{{When}\mspace{14mu} Z_{2,s}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}2\text{-}s\text{-}1} \right) \\ {{Z_{2,s} = {i - a_{{\# k},2,s} + {M\left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}}\vdots} & \left( {{{Math}.\mspace{14mu} 386}\text{-}2\text{-}s\text{-}2} \right) \end{matrix}$

$\begin{matrix} {\left\lbrack {{{Math}.\mspace{14mu} 386}\text{-}3} \right\rbrack {{{When}\mspace{14mu} Z_{2,{r\; 2}}} \geq {0\text{:}}}} & \; \\ {{Z_{2,_{r_{2}}} = {i - a_{{\# k},2,_{r_{2}}}}}{{{When}\mspace{14mu} Z_{2,{r\; 2}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}2\text{-}r_{1}\text{-}1} \right) \\ {{Z_{2,_{r2}} = {i - a_{{\# k},2,_{r2}} + M}}{{{When}\mspace{14mu} Z_{3,1}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}2\text{-}r_{1}\text{-}2} \right) \\ {{Z_{3,1} = {i - a_{{\# k},3,1}}}{{{When}\mspace{14mu} Z_{3,1}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}3\text{-}1\text{-}1} \right) \\ {{Z_{3,1} = {i - a_{{\# k},3,1} + M}}{{{When}\mspace{14mu} Z_{3,2}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}3\text{-}1\text{-}2} \right) \\ {{Z_{3,2} = {i - a_{{\# k},3,2}}}{{{When}\mspace{20mu} Z_{3,2}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}3\text{-}2\text{-}1} \right) \\ {{Z_{3,2} = {i - a_{{\# k},3,2} + M}}\vdots {{{When}\mspace{14mu} Z_{3,s}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}3\text{-}2\text{-}2} \right) \\ {{Z_{3,s} = {i - {a_{{\# k},3,s}\left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}}{{{When}\mspace{14mu} Z_{3,s}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}3\text{-}s\text{-}1} \right) \\ {{Z_{3,s} = {i - a_{{\# k},3,s} + {M\left( {{s = 1},2,\ldots \mspace{14mu},{r_{2} - 1},r_{2}} \right)}}}\vdots {{{When}\mspace{14mu} Z_{3,{r\; 3}}} \geq {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}3\text{-}s\text{-}2} \right) \\ {{Z_{3,_{r_{3}}} = {i - a_{{\# k},3,_{r_{3}}}}}{{{When}\mspace{14mu} Z_{3,{r\; 3}}} < {0\text{:}}}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}3\text{-}r_{3}\text{-}1} \right) \\ {Z_{3,_{r_{3}}} = {i - a_{{\# k},3,_{r_{3}}} + M}} & \left( {{{Math}.\mspace{14mu} 386}\text{-}3\text{-}r_{3}\text{-}2} \right) \end{matrix}$

The following describes the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme in the present embodiment.

Before the above-mentioned description is made, the parity check matrix for the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme is described first.

For example, in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q defined in Math. 373, the information X₁, X₂, X₃ at time i of the jth block and parity P at time i when tail-biting is performed are respectively represented by X_(j,1,i), X_(j,2,i), X_(j,3,i), and P_(1,i). In order to satisfy Condition #20-1, tail-biting is performed on the assumption that i=1, 2, 3, . . . , q, . . . , q×N−q+1, q×N−q+2, q×N−q+3, . . . , q×N.

Here, the followings hold true: N is a natural number; a transmission sequence (codeword) u_(j) of the jth block is represented by u_(j)=(X_(j,1,1), X_(j,2,1), X_(j,3,1), P_(j,1), X_(j,1,2), X_(j,2,2), X_(j,3,2), P_(j,2), . . . , X_(j,1,k), X_(j,2,k), X_(j,3,k), P_(j,k), . . . , X_(j,1,q×N−1), X_(j,2,q×N−1), X_(j,3,q×N−1), P_(j,q×N−1), X_(j,1,q×N), X_(j,2,q×N), X_(j,3,q×N), P_(j,q×N))^(T); and Hu_(j)=0 (the zero in Hu_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is zero for all the values of k (k is an integer not less than one and not more than q×N). H is the LDPC-CC parity check matrix based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q when tail-biting is performed.

The following describes the configuration of the LDPC-CC parity check matrix based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q when tail-biting is performed, with use of FIGS. 141 and 142.

Assuming a sub-matrix (a vector) corresponding to Math. 373 to be H_(g), the gth sub-matrix can be represented as shown in Math. 374 as described above.

Among the LDPC-CC parity check matrices that correspond to the transmission sequence u_(j) defined above and are based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q when tail-biting is performed, the parity check matrices in the vicinity of time q×N are represented by FIG. 141. As shown in FIG. 141, in the parity check matrix H, a configuration is employed in which a sub-matrix is shifted four columns to the right between the ith row and (i+1)th row (see FIG. 141).

In FIG. 141, a reference sign 14101 indicates the (q×N)th (i.e., last) row of the parity check matrix, which corresponds to the parity check polynomial satisfying the (q−1)th zero as it satisfies Condition #20-1. A reference sign 14102 indicates the (q×N−1)th row of the parity check matrix, which corresponds to the parity check polynomial satisfying the (q−2)th zero as it satisfies Condition #20-1. A reference sign 14103 indicates a column group corresponding to time q×N. Columns in the column group 14103 are arranged in the order of X_(j,1,q×N), X_(j,2,q×N), X_(j,3,q×N), and P_(j,q×N). A reference sign 14104 indicates a column group corresponding to time q×N−1. Columns in the column group 14104 are arranged in the order of X_(j,1,q×N−1), X_(j,2,q×N−1), X_(j,3,q×N−1), and P_(j,q×N−1)

Among the parity check matrices corresponding to u_(j)=( . . . , X_(j,1,q×N−1), X_(j,2,q×N−1), X_(j,3,q×N−1), P_(j,q×N−1), X_(j,1,q×N), X_(j,2,q×N), X_(j,3,q×N), P_(j,q×N), X_(j,1,1), X_(j,2,1), X_(j,3,1), P_(j,1), X_(j,1,2), X_(j,2,2), X_(j,3,2), P_(j,2), . . . )^(T), the parity check matrix in the vicinity of time q×N−1, q×N, 1, 2 is shown in FIG. 142 by reordering elements of the transmission sequence. In this case, a portion of the parity check matrix shown in FIG. 142 is a characteristic portion when tail-biting is performed. As shown in FIG. 142, in the parity check matrix H, a configuration is employed in which a sub-matrix is shifted four columns to the right between the ith row and (i+1)th row (see FIG. 142).

In FIG. 142, when the parity check matrix is represented as shown in FIG. 141, a reference sign 14205 indicates a column corresponding to the (q×N×4)th column and a reference sign 14206 indicates a column corresponding to the first column.

A reference sign 14207 indicates a column group corresponding to time q×N−1. Columns in the column group 14207 are arranged in the order of X_(j,1,q×N−1), X_(j,2,q×N−1), X_(j,3,q×N−1), and P_(j,q×N−1). A reference sign 14208 indicates a column group corresponding to time q×N. Columns in the column group 14208 are arranged in the order of X_(j,1,q×N), X_(j,2,q×N), X_(j,3,q×N), and P_(j,q×N). A reference sign 14209 indicates a column group corresponding to time 1. Columns in the column group 14209 are arranged in the order of X_(j,1,1), X_(j,2,1), X_(j,3,1), and P_(j,1). A reference sign 14210 indicates a column group corresponding to time 2. Columns in the column group 14210 are arranged in the order of X_(j,1,2), X_(j,2,2), X_(j,3,2), and P_(j,2).

When the parity check matrix is represented as shown in FIG. 141, a reference sign 14211 indicates a row corresponding to the (q×N)th row and a reference sign 14212 indicates a row corresponding to the first row. The characteristic portion of the parity check matrix when tail-biting is performed is a portion of the parity check matrix that is on the left-hand side of the reference sign 14213 and lower than the reference sigh 14214 in FIG. 142.

When the parity check matrix is represented as shown in FIG. 141, if Condition #20-1 is satisfied, the parity check matrix starts with the row corresponding to the parity check polynomial satisfying the zeroth zero and ends with the row corresponding to the parity check polynomial satisfying the (q−1)th zero. This is important to achieve high error-correction capability. In the time-varying LDPC-CC, a code is actually designed so that the number of cycles of short length is small in the Tanner graph. As is evident from FIG. 142, in order to reduce the number of cycles of short length in the Tanner graph when tail-biting is performed, it is important to ensure the situation as shown in FIG. 142. That is to say, Condition #20-1 is an important requirement.

For the sake of simplicity, the parity check matrix when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q, and defined in Math. 373 has been described above. The parity check matrix, however, is generated in a similar manner when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q, and defined in Math. 371.

This concludes the configuration method of the parity check matrix when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q, and defined in Math. 373.

The following describes the parity check matrix that is equivalent to the parity check matrix when tail-biting is performed in the LDPC-CC based on the above-mentioned parity check polynomial having a coding rate of ¾ and a time-varying period of q in order to explain the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme in the present embodiment.

Described above is the configuration of the parity check matrix H when tail-biting is performed in the LDPC-CC based on parity check polynomial having a coding rate of ¾ and a time-varying period of q, where a transmission sequence u_(j) of the jth block is represented by u_(j)=(X_(j,1,1), X_(j,2,1), X_(j,3,1), P_(j,1), X_(j,1,2), X_(j,2,2), X_(j,3,2), P_(j,2), . . . , X_(j,1,k), X_(j,2,k), X_(j,3,k), P_(j,k), . . . , X_(j,1,q×N−1), X_(j,2,q×N−1), X_(j,3,q×N−11), P_(j,q×N−1), X_(j,1,q×N), X_(j,2,q×N), X_(j,3,q×N), P_(j,q×N))^(T) and Hu_(j)=0 (the zero in Hu_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is zero for all the values of k (k is an integer not less than one and not more than q×N) holds true. The following describes the configuration of the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q, where a transmission sequence s_(j) of the jth block is represented by s_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,q×N), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,q×N), X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k), . . . , X_(j,3,q×N), P_(j,1), P_(j,2), . . . , P_(j,k), . . . , P_(j,q×N)) ^(T) and H_(m)s_(j)=0 (the zero in H_(m)s_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is zero for all the values of k (k is an integer not less than one and not more than q×N) holds true.

Assuming that the number of bits of information X₁ in one block, the number of bits of information X₂ in one block, the number of bits of information X₃ in one block, and a parity bit P when tail-biting is performed are each M bits, the parity check matrix when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q is represented by H_(m)=[H_(x,1), H_(x,2), H_(x,3), H_(p)], as shown in FIG. 143 (as described above, although high error-correction capability is achieved if the number of bits of information X₁ in one block, the number of bits of information X₂ in one block, the number of bits of information X₃ in one block, and a parity bit P are each M=q×N bits, the number of bits are not limited to M=q×N bits). Since a transmission sequence (codeword) s_(j) of the jth block is represented by s_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,q×N), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,q×N), X_(j,3,1), X_(j,3,2), . . . , X_(1,3,k), . . . , X_(j,3,q×N), P_(j,1), P_(j,2), . . . , P_(j,k), . . . , P_(j,q×N))^(T), H_(x,1), H_(x,2), H_(x,3), and H_(p) are respectively the partial matrix relating to the information X₁, the partial matrix relating to the information X₂, the partial matrix relating to the information X₃, and the partial matrix relating to the parity P. As shown in FIG. 143, the parity check matrix H_(m) is a matrix with M rows and 4×M columns. The partial matrix H_(x,1) relating to the information X₁, the partial matrix H_(x,2) relating to the information X₂, the partial matrix H_(x,3) relating to the information X₃, and the partial matrix H_(p) relating to the parity P are each a matrix with M rows and M columns (in this case, H_(m)s_(j)=0 (the zero in H_(m)s_(j)=0 here indicates that all elements of the vector are zeros) holds true).

FIG. 95 shows the configuration of the partial matrix H_(p) relating to the parity P in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q. As shown in FIG. 95, an element in the ith row and the ith column (i is an integer not less than one and not more than M (i=1, 2, 3, . . . , M−1, M)) of the partial matrix H_(p) relating to the parity P is one and the other elements are each zero.

The above-mentioned description is expressed in another way. The element in the ith row and the jth column of the partial matrix H_(p) relating to the parity P in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q is assumed to be represented by H_(p,comp)[i][j](i and j are each an integer not less than one and not more than M (i, j=1, 2, 3, . . . , M−1, M)).

The following Maths hold true.

[Math. 387]

H _(p,comp) [i][i]=1 for ∀i;i=1,2,3, . . . ,M−1,M  (Math. 387)

(i is an integer not less than 1 and not more than M (i=1, 2, 3, . . . , M−1, M), and the above expression holds true for all values of i that satisfy this condition)

[Math. 388]

H _(cp,comp) [i][j]=0 for ∀i∀j;i≠j;i,j=1,2,3, . . . ,M−1,M  (Math. 388)

(i and j are each an integer not less than 1 and not more than M (i, j=1, 2, 3, . . . , M−1, M), i≠j, and the above expression holds true for all values of i and j that satisfy this condition)

As shown in FIG. 95, in the partial matrix H_(p) relating to the parity P in FIG. 95,

the first row is a vector of a part of the zeroth (i.e., g=0) parity check polynomial relating to the parity P among the parity check polynomials satisfying zero (Math. 371 or Math. 373) in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q,

the second row is a vector of a part of the first (i.e., g=1) parity check polynomial relating to the parity P among the parity check polynomials satisfying zero (Math. 371 or Math. 373) in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q,

the (q+1)th row is a vector of a part of the qth (i.e., g=q) parity check polynomial relating to the parity P among the parity check polynomials satisfying zero (Math. 371 or Math. 373) in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q,

the (q+2)th row is a vector of a part of the zeroth (i.e., g=0) parity check polynomial relating to the parity P among the parity check polynomials satisfying zero (Math. 371 or Math. 373) in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q,

and so on.

FIG. 119 shows the configuration of the partial matrix H_(x,z) (z is an integer not less than one and not more than three) relating to the information X_(z) in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q. The following describes the configuration of the partial matrix H_(x,z) relating to the information X_(z) by taking, an example, a case where the parity check polynomial satisfying zero satisfies Math. 373 in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q.

As shown in FIG. 119, in the partial matrix H_(x,z) relating to the information X_(z) in FIG. 119,

the first row is a vector of a part of the zeroth (i.e., g=0) parity check polynomial relating to the information X_(z) among the parity check polynomials satisfying zero (Math. 371 or Math. 373) in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q,

the second row is a vector of a part of the first (i.e., g=1) parity check polynomial relating to the information X_(z) among the parity check polynomials satisfying zero (Math. 371 or Math. 373) in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q,

the (q+1)th row is a vector of a part of the qth (i.e., g=q) parity check polynomial relating to the information X_(z) among the parity check polynomials satisfying zero (Math. 371 or Math. 373) in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q,

the (q+2)th row is a vector of a part of the zeroth (i.e., g=0) parity check polynomial relating to the information X_(z) among the parity check polynomials satisfying zero (Math. 371 or Math. 373) in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q,

and so on.

Therefore, assuming that (s−1)%q=k (% represents the modulo operator), the sth row of the partial matrix H_(x,z) relating to the information X_(z) in FIG. 119 is a vector of a part of the kth parity check polynomial relating to the information X_(z) among the parity check polynomials satisfying zero (Math. 371 or Math. 373) in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q.

The following describes a value of each element of the partial matrix H_(x,z) relating to the information X_(z) in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q.

The element in the ith row and the jth column of the partial matrix H_(x,1) relating to the information X₁ in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q is assumed to be represented by H_(x,1,comp)[i][j](i and j are each an integer not less than one and not more than M (i, j=1, 2, 3, . . . , M−1, M)). When the parity check polynomial satisfying zero satisfies Math. 373 in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q, assuming that (s−1)%q=k (% represents the modulo operator) in the sth row of the partial matrix H_(x,1) relating to the information X₁, the parity check polynomial corresponding to the sth row of the partial matrix H_(x), relating to the information X₁ is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 389} \right\rbrack} & \; \\ {{{\left( {D^{{\# {ak}},1,1} + D^{{a\# k},1,2} + \ldots + D^{{\# {ak}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{\# {ak}},2,1} + D^{{a\# k},2,2} + \ldots + D^{{\# {ak}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{\# {ak}},3,1} + D^{{a\# k},3,2} + \ldots + D^{{\# {ak}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 389} \right) \end{matrix}$

Therefore, when the element satisfies one in the sth row of the partial matrix H_(x,1) relating to the information X₁, the following Math holds true.

[Math. 390]

H _(x,1,comp) [s][s]=1  (Math. 390)

Furthermore, the following Math holds true.

[Math. 391]

When s−a_(#k,1,y)≧1:

H _(x,1,comp) [s][s−a _(#k,1,y)]=1  (Math. 391-1)

When s−a_(#k,1,y)<1:

H _(x,1,comp) [s][s−a _(#k,1,y) +M]=1  (Math. 391-2)

(where y=1, 2, . . . , r₁-1, r₁)

Elements other than Math. 390, Math. 391-1 and Math. 391-2 in H_(x,1,comp)[s][j] in the sth row of the partial matrix H_(x,1) relating to the information X₁ are each zero. This is because Math. 390 is an element corresponding to D⁰X₁(D) (=X₁(D)) in Math. 389 (corresponding to the ones in the diagonal component of the matrix in FIG. 119), and the partial matrix H_(x,1) relating to the information X₁ has the first to Mth rows and the first to Mth columns in the classification shown in Math. 391-1 and Math. 392-2.

Similarly, when the parity check polynomial satisfying zero satisfies Math. 373 in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q, assuming that (s−1)%q=k (% represents the modulo operator) in the sth row of the partial matrix H_(x,2) relating to the information X₂, the parity check polynomial corresponding to the sth row of the partial matrix H_(x,2) relating to the information X₂ is represented as shown in Math. 389. Therefore, when the element satisfies one in the sth row of the partial matrix H_(x,2) relating to the information X₂, the following Math holds true.

[Math. 392]

H _(x,2,comp) [s][s]=1  (Math. 392)

Furthermore, the following Math holds true.

[Math. 393]

When s−a_(#k,2,y)≧1:

H _(x,2,comp) [s][s−a _(#k,2,y)]=1  (Math. 393-1)

When s−a_(#k,2,y)<1:

H _(x,2,comp) [s][s−a _(#k,2,y) +M]=1  (Math. 393-2)

(where y=1, 2, . . . , r₂-1, r₂)

Elements other than Math. 392, Math. 393-1 and Math. 393-2 in H_(x,2,comp)[s][j] in the sth row of the partial matrix H_(x,2) relating to the information X₂ are each zero. This is because Math. 392 is an element corresponding to D⁰X₂(D) (=X₂(D)) in Math. 389 (corresponding to the ones in the diagonal component of the matrix in FIG. 119), and the partial matrix H_(x,2) relating to the information X₂ has the first to Mth rows and the first to Mth columns in the classification shown in Math. 393-1 and Math. 393-2.

Similarly, when the parity check polynomial satisfying zero satisfies Math. 373 in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q, assuming that (s−1)%q=k (% represents the modulo operator) in the sth row of the partial matrix H_(x,3) relating to the information X₃, the parity check polynomial corresponding to the sth row of the partial matrix H_(x,3) relating to the information X₃ is represented as shown in Math. 389.

Therefore, when the element satisfies one in the sth row of the partial matrix H_(x,3) relating to the information X₃, the following Math holds true.

[Math. 394]

H _(x,3,comp) [s][s]=1   (Math. 394)

Furthermore, the following Math holds true.

[Math. 395]

When s−a_(#k,3,y)≧1:

H _(x,3,comp) [s][s−a _(#k,3,y)]=1  (Math. 395-1)

When s−a_(#k,3,y)<1:

H _(x,3,comp) [s][s−a _(#k,3,y) +M]=1   (Math. 395-2)

(where y=1, 2, . . . , r₃-1, r₃)

Elements other than Math. 394, Math. 395-1 and Math. 395-2 in H_(x,3,comp)[s][j] in the sth row of the partial matrix H_(x,3) relating to the information X₃ are each zero. This is because Math. 394 is an element corresponding to D⁰X₃(D) (=X₃(D)) in Math. 389 (corresponding to the ones in the diagonal component of the matrix in FIG. 119), and the partial matrix H_(x,3) relating to the information X₃ has the first to Mth rows and the first to Mth columns in the classification shown in Math. 395-1 and Math. 395-2.

The configuration of the parity check matrix when the parity check polynomial satisfies Math. 373 is described above. The following describes the parity check matrix when the parity check polynomial satisfying zero satisfies Math. 371 in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q.

When the parity check polynomial satisfying zero satisfies Math. 371, the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q is as shown in FIG. 143 as described above. In this case, the configuration of the partial matrix H_(p) relating to the parity P in the parity check matrix H_(m) is represented as shown in FIG. 95 as described above. When the parity check polynomial satisfying zero satisfies Math. 371 in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q, assuming that (s−1)%q=k (% represents the modulo operator) in the sth row of the partial matrix H_(x,1) relating to the information X₁, the parity check polynomial corresponding to the sth row of the partial matrix H_(x,1) relating to the information X₁ is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 396} \right\rbrack} & \; \\ {{{\left( {D^{{\# {ak}},1,1} + D^{{a\# k},1,2} + \ldots + D^{{\# {ak}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{\# {ak}},2,1} + D^{{a\# k},2,2} + \ldots + D^{{\# {ak}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{\# {ak}},3,1} + D^{{a\# k},3,2} + \ldots + D^{{\# {ak}},3,_{r_{3}}}} \right){X_{3}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 396} \right) \end{matrix}$

Therefore, when the element satisfies one in the sth row of the partial matrix H_(x,1) relating to the information X₁, the following Math holds true.

[Math. 397]

When s−a_(#k,1,y)≧1:

H _(x,1,comp) [s][s−a _(#k,1,y)]=1  (Math. 397-1)

When s−a_(#k,1,y)<1:

H _(x,1,comp) [s][s−a _(#k,1,y) +M]=1  (Math. 397-2)

(where y=1, 2, . . . , r₁−1, r₁)

Elements other than Math. 397-1 and Math. 397-2 in H_(x,1,comp)[s][j] in the sth row of the partial matrix H_(x,1) relating to the information X₁ are each zero

Similarly, when the parity check polynomial satisfying zero satisfies Math. 371 in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q, assuming that (s−1)%q=k (% represents the modulo operator) in the sth row of the partial matrix H_(x,2) relating to the information X₂, the parity check polynomial corresponding to the sth row of the partial matrix H_(x,2) relating to the information X₂ is represented as shown in Math. 396. Therefore, when the element satisfies one in the sth row of the partial matrix H_(x,2) relating to the information X₂, the following Math holds true.

[Math. 398]

When s−a_(#k,2,y)≧1:

H _(x,2,comp) [s][s−a _(#k,2,y)]=1  (Math. 398-1)

When s−a_(#k,2,y)<1:

H _(x,2,comp) [s][s−a _(#k,2,y) +M]=1  (Math. 398-2)

(where y=1, 2, . . . , r₂-1, r₂)

Elements other than Math. 398-1 and Math. 398-2 in H_(x,2,comp)[s][j] in the sth row of the partial matrix H_(x,2) relating to the information X₂ are each zero.

Similarly, when the parity check polynomial satisfying zero satisfies Math. 371 in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q, assuming that (s−1)%q=k (% represents the modulo operator) in the sth row of the partial matrix H_(x,3) relating to the information X₃, the parity check polynomial corresponding to the sth row of the partial matrix H_(x,3) relating to the information X₃ is represented as shown in Math. 396. Therefore, when the element satisfies one in the sth row of the partial matrix H_(x,3) relating to the information X₃, the following Math holds true.

[Math. 399]

When s−a_(#k,3,y)≧1:

H _(x,3,comp) [s][s−a _(#k,3,y)]=1  (Math. 399-1)

When s−a_(#k,3,y)<1:

H _(x,3,comp) [s][s−a _(#k,1,y) +M]=1  (Math. 391-2)

(where y=1, 2, . . . , r₃-1, r₃)

Elements other than Math. 399-1 and Math. 399-2 in H_(x,3,comp)[s][j] in the sth row of the partial matrix H_(x,3) relating to the information X₃ are each zero.

The following describes the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme in the present embodiment.

Assuming that the number of bits of information X₁ in one block, the number of bits of information X₂ in one block, the number of bits of information X₃ in one block, and a parity bit Pc (parity Pc refers to parity in the concatenated code) are each M bits (because a coding rate is ¾) in the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme,

the information X₁ of M bits of the jth block is represented by X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M),

the information X₂ of M bits of the jth block is represented by X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M),

the information X₃ of M bits of the jth block is represented by X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k), . . . , X_(j,3,M), and

the parity bit Pc of M bits of the jth block is represented by Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M) (therefore, k=1, 2, 3, . . . , M−1, M). A transmission sequence is represented by v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k), . . . , X_(j,3,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T). The parity check matrix Hem for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme is represented as shown in FIG. 144. The parity check matrix H_(cm) is also represented by H_(cm)=[H_(cx,1), H_(cx,2), H_(cx,3), H_(c](in this case, H) _(cm)v_(j)=0 holds true. The zero in H_(cm)v_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is zero for all the values of k (k is an integer not less than one and not more than M)) (As described above, although high error-correction capability is achieved if the number of bits of information X₁ in one block, the number of bits of information X₂ in one block, the number of bits of information X₃ in one block, and the parity bit are each M=q×N(N is a natural number) bits when a time-varying period of the feedforward LDPC convolutional code based on the parity check polynomial used for the above-mentioned concatenated code is q, the number of bits are not limited to M=q×N bits). In this case, H_(cx,1) is the partial matrix relating to the information X₁ of the parity check matrix H_(cm) for the above-mentioned convolutional code, H_(cx,2) is the partial matrix relating to the information X₂ of the parity check matrix H_(cm) for the above-mentioned convolutional code, H_(cx,3) is the partial matrix relating to the information X₃ of the parity check matrix H_(cm) for the above-mentioned convolutional code, and H_(cp) is the partial matrix relating to the parity Pc (parity Pc refers to parity in the concatenated code) of the parity check matrix H_(cm) for the above-mentioned convolutional code. As shown in FIG. 144, the parity check matrix H_(cm) is a matrix with M rows and 4×M columns. The partial matrix H_(cx,1) relating to the information X₁, the partial matrix H_(cx,2) relating to the information X₂, the partial matrix H_(cx,3) relating to the information X₃, and the partial matrix H_(cp) relating to the parity P_(c) are each a matrix with M rows and M columns.

FIG. 145 illustrates a relation between the partial matrix H_(x)=[H_(x,1) H_(x,2) H_(x,3)] (14501 in FIG. 145) relating to the information X₁, X₂, and X₃ in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q, and the partial matrix H_(cx)=[H_(cx,1) H_(cx,2) H_(cx,3)](14502 in FIG. 145) relating to the information X₁, X₂, and X₃ in the parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q.

In this case, the partial matrix H_(x)=[H_(x,1) H_(x,2) H_(cx,3)] (14501 in FIG. 145) is a matrix composed of 14301-1, 14301-2, and 14301-3 in FIG. 143, and is a matrix with M rows and 3×M columns. The partial matrix H_(cx)=[H_(cx,1) H_(cx,2) H_(cx,3)] (14502 in FIG. 145) is a matrix composed of 14401-1, 14401-2, and 14401-2 in FIG. 144, and is a matrix with M rows and 3×M columns.

The configuration of the partial matrix H_(x) relating to the information X₁, X₂, and X₃ in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q is as described above.

In the partial matrix H_(x) (14501 in FIG. 145) relating to the information X₁, X₂, and X₃ in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q, assuming that:

   a vector generated by extracting only the first row is h_(x,1);    a vector generated by extracting only the second row is h_(x,2);    a vector generated by extracting only the third row is h_(x,3);    .    .    .    a vector generated by extracting only the kth row is h_(x,k) (k = 1, 2, ..., M−1, M);    .    .    .    a vector generated by extracting only the (M−1)th row is h_(x,M−1);    and    a vector generated by extracting only the Mth row is h_(x,M),

the partial matrix H_(x) (14501 in FIG. 145) relating to the information X₁, X₂, and X₃ in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q is represented as shown in the following Math.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 400} \right\rbrack & \; \\ {H_{x} = \begin{bmatrix} h_{x,1} \\ h_{x,2} \\ \vdots \\ h_{x,{M - 1}} \\ h_{x,M} \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 400} \right) \end{matrix}$

In FIG. 139, the interleaver is positioned after the step of encoding the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme. With this structure, from the partial matrix H_(x) (14501 in FIG. 145) relating to the information X₁, X₂, and X₃ in the parity check matrix H_(m) when tail-biting is performed in the LDPC-CC based on the parity check polynomial having a coding rate of ¾ and a time-varying period of q, the partial matrix H_(cx)=[H_(cx,1) H_(cx,2) H_(cx,3)] (14502 in FIG. 145) relating to the information X₁, X₂, and X₃ when interleaving is performed after encoding the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme, i.e., the partial matrix H_(cx) (14502 in FIG. 145) relating to the information X₁, X₂, and X₃ in the parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme is generated.

As shown in FIG. 145, in the partial matrix H_(cx) (14502 in FIG. 145) relating to the information X₁, X₂, and X₃ in the parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾, assuming that:

   a vector generated by extracting only the first row is hc_(x,1);    a vector generated by extracting only the second row is hc_(x,2);    a vector generated by extracting only the third row is hc_(x,3);    .    .    .    a vector generated by extracting only the kth row is hc_(x,k) (k = 1, 2, 3, ..., M−1, M);    .    .    .    a vector generated by extracting only the (M−1)th row is hc_(x,M−1);    and    a vector generated by extracting only the Mth row is hc_(x,M),

the partial matrix H_(cx) (14502 in FIG. 145) relating to the information X₁, X₂, and X₃ in the parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ is represented as shown in the following Math.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 401} \right\rbrack & \; \\ {H_{cx} = \begin{bmatrix} {hc}_{x,1} \\ {hc}_{x,2} \\ \vdots \\ {hc}_{x,{M - 1}} \\ {hc}_{x,M} \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 401} \right) \end{matrix}$

A vector hc_(x,k) (k=1, 2, 3, . . . , M−1, M) generated by extracting only the kth row of the partial matrix H_(cx) (14502 in FIG. 145) relating to the information X₁, X₂, and X₃ of the parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ is represented by any of h_(x,i) (i=1, 2, 3, . . . , M−1, M) (In other words, h_(x,i) (i=1, 2, 3, . . . , M−1, M) is always positioned in any of the vector hc_(x,k) generated by extracting only the kth row by interleaving). In FIG. 145, for example, a vector hc_(x,1) generated by extracting only the first row is represented by hc_(X,1)=h_(x,47), and a vector hc_(x,M) generated by extracting only the Mth row is represented by hc_(x,M)=h_(x,21). The following Math holds true as only interleaving is performed.

[Math. 402]

hc _(x,i) ≠hc _(x,j) for ∀i∀j;i≠j;i,j=1,2,, . . . ,M−2,M−1,M  (Math. 402)

(i and j are each 1, 2, . . . , M−2, M−1, M, i≠j, and the above expression holds true for all values of i and j that satisfy this condition)

Therefore,

h_(x,1), h_(x,2), h_(x,3), . . . , h_(x,M−2), h_(x,M−1), h_(x,M)

each appear once in the vector hc_(x,k) (k=1, 2, 3, . . . , M−1, M) generated by extracting only the kth row.

That is to say,

there is one value of k that satisfies hc_(x,k) = h_(x,1), there is one value of k that satisfies hc_(x,k) = h_(x,2), there is one value of k that satisfies hc_(x,k) = h_(x,3), . . . there is one value of k that satisfies hc_(x,k) = h_(x,j), . . . there is one value of k that satisfies hc_(x,k) = h_(x,M−2), there is one value of k that satisfies hc_(x,k) = h_(x,M−1), and there is one value of k that satisfies hc_(x,k) = h_(x,M).

FIG. 99 shows the configuration of the partial matrix H_(cp) relating to the parity Pc (parity Pc refers to parity in the above-mentioned concatenated code) in the parity check matrix H_(cm)=[H_(Cx,1), H_(cx,2), H_(cx,3), H_(cp)] for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾. The partial matrix H_(cp) relating to the parity Pc is a matrix with M rows and M columns. The element in the ith row and the jth column of the partial matrix H_(cp) relating to the parity Pc is assumed to be represented by H_(cp,comp)[i][j](i and j are each an integer not less than one and not more than M (i, j=1, 2, 3, . . . , M−1, M)). The following Maths hold true.

[Math. 403]

When i=1:

H _(cp,comp)[1][1]=1  (Math. 403-1)

H _(cp,comp)[1][j]=0 for ∀j;j=2,3, . . . ,M−1,M  (Math. 403-2)

(j is an integer not less than 2 and not more than M (j=2, 3, . . . , M−1, M), and Math. 403-2 holds true for all values of j that satisfy this condition)

[Math. 404]

When i≠1 (i is an integer not less than 2 and not more than M, that is, i=2, 3, . . . , M−1, M):

H _(cp,comp) [i][i]=1 for ∀i;i=2,3, . . . ,M−1,M  (Math. 404-1)

(i is an integer not less than 2 and not more than M (i=2, 3, . . . , M−1, M), and Math. 404-1 holds true for all values of i that satisfy this condition)

H _(cp,comp) [i][i−1]=1 for ∀i;i=2,3, . . . ,M−1,M  (Math. 404-2)

(i is an integer not less than 2 and not more than M (i=2, 3, . . . , M−1, M), and Math. 404-2 holds true for all values of i that satisfy this condition)

H _(cp,comp) [i][j]=0 for ∀i∀j;i≠j;i−1≠j;i=2,3, . . . ,M−1,M;j=1,2,3, . . . ,M−1,M  (Math. 404-3)

(i is an integer not less than 2 and not more than M (i=2, 3, . . . , M−1, M), j is an integer not less than 1 and not more than M (j=1, 2, 3, . . . , M−1, M), {i≠j or i−1≠j}, and Math. 404-3 holds true for all values of i and j that satisfy this condition)

The configuration of the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ has been described with use of FIGS. 99, 144 and 145.

The following describes another representation method of the above-mentioned parity check matrix for the concatenated code that is different from that shown in each of FIGS. 99, 144 and 145. In FIGS. 99, 144 and 145, the parity check matrix, the partial matrix relating to the information in the parity check matrix, and the partial matrix relating to the parity in the parity check matrix each corresponding to a transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), X_(j,3,1), X_(j,3,2), . . . , X . . . , X_(j,3,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) have been described. As shown in FIG. 146, the following describes the parity check matrix, the partial matrix relating to the information in the parity check matrix, and the partial matrix relating to the parity in the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ when a transmission sequence is assumed to be v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . , X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T) (by way of example, only a parity sequence is reordered here). FIG. 146 shows the configuration of the partial matrix H′_(cp) relating to the parity Pc (parity Pc refers to parity in the concatenated code) in the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ when a transmission sequence v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(1,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(1,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) shown in FIGS. 99, 144, and 145 is reordered so as to be a transmission sequence v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), . . . , X_(j,n−2,1), X_(j,n−2,2), . . . , X_(j,n−2,k), . . . , X_(j,n−2,M), X_(j,n−1,1), X_(j,n−1,2), . . . , X_(j,n−1,k), . . . , X_(j,n−1,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T). The partial matrix H′_(cp) relating to the parity Pc is a matrix with M rows and M columns. The element in the ith row and the jth column of the partial matrix H′_(cp) relating to the parity Pc is assumed to be represented by H′_(cp,comp)[i][j](i and j are each an integer not less than one and not more than M (i, j=1, 2, 3, . . . , M−1, M)). The following Maths hold true.

[Math. 405]

When i≠M (i is an integer not less than 1 and not more than M−1, that is, i=1,2, . . . ,M−1):

H′ _(cp,comp) [i][i]=1 for ∀i;i=1,2, . . . ,M−1,M  (Math. 405-1)

(i is an integer not less than 1 and not more than M−1 (i=1, 2, . . . , M−1), and Math. 405-1 holds true for all values of i that satisfy this condition)

H′ _(cp,comp) [i][i+1]=1 for ∀i;i=1,2, . . . ,M−1,M  (Math. 405-2)

(i is an integer not less than 1 and not more than M−1 (i=1, 2, . . . , M−1), and Math. 405-2 holds true for all values of i that satisfy this condition)

H′ _(cp,comp) [i][j]=0 for ∀i∀j;i≠j;i+1≠j;i=1,2, . . . ,M−1,j=1,2,3, . . . ,M−1,M  (Math. 405-3)

(i is an integer not less than 1 and not more than M−1 (i=1, 2, . . . , M−1), j is an integer not less than 1 and not more than M (j=1, 2, 3, . . . , M−1, M), {i≠j or i+1≠j}, and Math. 405-3 holds true for all values of i and j that satisfy this condition)

[Math. 406]

When i=M:

H′ _(cp,comp) [M][M]=1  (Math. 406-1)

H′ _(cp,comp) [M][j]=0 for ∀j;j=1,2, . . . ,M−1  (Math. 406-2)

(j is an integer not less than 1 and not more than M−1 (j=1, 2, . . . , M−1), and Math. 406-2 holds true for all values of j that satisfy this condition)

FIG. 147 shows the configuration of the partial matrix H′_(cx) (14702 in FIG. 147) relating to the information X₁, X₂, and X₃ in the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ when a transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,1,k), . . . , X_(j,2,M), X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k), . . . , X_(j,3,M), Pc_(j,1), Pc_(j,2), . . . , P_(j,k), . . . , Pc_(j,M)) ^(T) shown in FIGS. 99, 144, and 145 is reordered so as to be a transmission sequence v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k), . . . , X_(j,3,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T). The partial matrix H′_(cx) relating to the information X₁, X₂, and X₃ is a matrix with M rows and 3×M columns. For comparison, the configuration of the partial matrix H_(cx)=[H_(x,1) H_(cx,2) H_(cx,3)] (14701 in FIG. 147 and similar to 14702 in FIG. 147) relating to the information X₁, X₂, and X₃ when a transmission sequence is represented by v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k), . . . , X_(j,3,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) as shown in FIGS. 99, 144, and 145 is also shown.

In FIG. 147, H_(cx) (14701) is the partial matrix relating to the information X₁, X₂, and X₃ when a transmission sequence is represented by v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,91,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k), . . . , X_(j,3,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) as shown in FIGS. 99, 144, and 145, and is the same as H, shown in FIG. 145. Similar to the description with use of FIG. 145, a vector generated by extracting only the kth row of the partial matrix H_(cx) (14701) relating to the information X₁, X₂, and X₃ is represented by hc_(x,k) (k=1, 2, 3, . . . , M−1, M).

H′_(cx) (14702) shown in FIG. 147 is the partial matrix relating to the information X₁, X₂, and X₃ in the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ when a transmission sequence is represented by v′_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k), . . . , X_(j,3,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,1))^(T). When the vector hc_(x,k) (k=1, 2, 3, . . . , M−1, M) is used,

   the first row of the partial matrix H′_(cx) (14702) relating to the information X₁, X₂, and X₃ is represented by hc_(x,M),    the second row of the partial matrix H′_(cx) (14702) relating to the information X₁, X₂, and X₃ is represented by hc_(x,M−1),    .    .    .    the (M−1)th row of the partial matrix H′_(cx) (14702) relating to the information X₁, X₂, and X₃ is represented by hc_(x,2), and    the Mth row of the partial matrix H′_(cx) (14702) relating to the information X₁, X₂, and X₃ is represented by hc_(x,1).

That is to say, a vector generated by extracting only the kth (k=1, 2, 3, . . . , M−2, M−1, M) row of the partial matrix H′_(cx) (14702) relating to the information X₁, X₂, and X₃ is represented by hc_(x,M−k+1). The partial matrix H′_(x) (14702) relating to the information X₁, X₂, and X₃ is a matrix with M rows and 3×M columns.

FIG. 148 shows the configuration of the partial check matrix H′_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ when a transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k), . . . , X_(j,3,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) shown in FIGS. 99, 144, and 145 is reordered so as to be a transmission sequence v′_(j)=(X_(j,1,1), X_(j,1,2) . . . X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k) . . . , X_(j,3,M), Pc_(j,M), Pc_(j,M−1), Pc_(j,M−2), . . . , Pc_(j,3), Pc_(j,2), Pc_(j,)) ^(T). When the partial matrix H′_(cp) relating to the parity shown in FIG. 146 and the partial matrix H′_(cx) relating to the information X₁, X₂, and X₃ shown in FIG. 147 are used, the parity check matrix H′_(cm) is represented by H′_(cm)=[H′_(cx), H′_(cp)]=[H′_(cx,1), H′_(cx,2), H′_(cx,3), H′_(cp)]. As shown in FIG. 148, H′_(cx,k) is the partial matrix relating to information X_(k) (k is an integer not less than one and not more than three). The parity check matrix H′_(cm) is a matrix with M rows and 4×M columns, and H′_(cm)v′_(j)=0 holds true (the zero in H′_(cm)v′_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is zero for all the values of k (k is an integer not less than one and not more than M)).

An example of the configuration of the parity check matrix when the transmission sequence is reordered has been described above. The following describes a generalized example of the configuration of the parity check matrix when the transmission sequence is reordered.

The configuration of the parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ has been described with use of FIGS. 99, 144, and 145. In this case, a transmission sequence is represented by v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k), . . . , X_(j,3,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T), and H_(cm)v_(j)=0 holds true (the zero in H_(cm)v_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is zero for all the values of k (k is an integer not less than one and not more than M)).

The following describes the configuration of the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ when the transmission sequence is reordered.

FIG. 149 shows the parity check matrix for the above-mentioned concatenated code shown in FIG. 144. In this case, although the transmission sequence of the jth block is v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k), . . . , X_(j,3,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T) as described above, the transmission sequence v_(j) of the jth block is represented by v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k), . . . , X_(j,3,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . Y_(j,4M−2), Y_(j,4M−1), Y_(j,4M)) Y_(j,k) here is the information X₁, the information X₂, the information X₃, or the parity Pc (since a generalized example is described here, the information X₁, the information X₂, the information X₃, and the parity Pc are not distinguished from one another). In this case, an element in the kth row of the transmission sequence v_(j) of the jth block (an element in the kth column of a transmission sequence v_(j) ^(T), which is a transpose of the transmission sequence v_(j), in FIG. 149) is Y_(j,k) (k is an integer not less than one and not more than 4×M). A vector generated by extracting the kth row of the parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ is represented by c_(k) as shown in FIG. 149. In this case, the parity check matrix H_(cm) for the above-mentioned concatenated code is represented as shown below.

[Math. 407]

H _(cm) =[c ₁ c ₂ c ₃ . . . c _(4M−2) c _(4N−1) c _(4M)]  (Math. 407)

The following describes the configuration of the parity check matrix for the above-mentioned concatenated code when elements of the transmission sequence v_(j) of the above-mentioned jth block are reordered with respect to the transmission sequence v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,1,k), . . . , X_(j,2,M), X_(j,3,1), X_(j,3,2), X_(j,3,k), . . . , X_(j,3,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,4M−2), Y_(j,4M−1), Y_(j,4M))^(T), with use of FIG. 150. Considered as an example is the parity check matrix when elements of the transmission sequence v_(j) of the above-mentioned jth block are reordered with respect to the transmission sequence v_(j)=(X_(j,1,i), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k), . . . , X_(j,3,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))T=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,4M−2), Y_(j,4M−1), Y_(j,4M))^(T) such that that a transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) as shown in FIG. 150. As described above, a transmission sequence obtained by reordering elements of the transmission sequence v_(j) of the jth block is the transmission sequence v′_(j). Therefore, v′_(j) is a vector with one row and 4×M columns. Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,4M−2), Y_(j,4M−1), Y_(j,4M) each appear once in 4×M elements of v′_(j).

FIG. 150 shows the configuration of the parity check matrix H′_(cm) when the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). In this case, an element in the first row of the transmission sequence v′_(j) of the jth block (an element in the first column of a transmission sequence v′_(j) ^(T), which is a transpose of the transmission sequence v′_(j), in FIG. 150) is Y_(j,32). Therefore, when the above-mentioned vector c_(k) (k=1, 2, 3, . . . , 4×M−2,4×M−1,4×M) is used, a vector generated by extracting the first column of the parity check matrix H′_(cm) is c₃₂. Similarly, an element in the second row of the transmission sequence v′_(j) of the jth block (an element in the second column of the transmission sequence v′_(j) ^(T), which is a transpose of the transmission sequence v′_(j), in FIG. 150) is Y_(j,99). Therefore, a vector generated by extracting the second column of the parity check matrix H′_(cm) is c₉₉. According to FIG. 150, a vector generated by extracting the third column of the parity check matrix H′_(cm) is c₂₃, a vector generated by extracting the (4×M−2)th column of the parity check matrix H′_(cm) is c₂₃₄, a vector generated by extracting the (4×M−1)th column of the parity check matrix H′_(cm) is c₃, and a vector generated by extracting the (4×M)th column of the parity check matrix H′_(cm) is C₄₃.

That is to say, when an element in the ith row of the transmission sequence v′_(j) of the jth block (an element in the ith column of the transmission sequence v′_(j) ^(T), which is a transpose of the transmission sequence v′_(j), in FIG. 150) is represented by Y_(j,g) (g=1, 2, 3, . . . , 4×M−2,4×M−1,4×M), a vector generated by extracting the ith column of the parity check matrix H′_(cm) is c_(g), if the above-mentioned vector c_(k) is used.

Therefore, the parity check matrix H′_(c) m when the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) is represented as shown below.

[Math. 408]

H′ _(cm) =[c ₃₂ c ₉₉ c ₂₃ . . . c ₂₃₄ c ₃ c ₄₃]  (Math. 408)

If the parity check matrix is created according to the aforementioned rule of: when an element in the ith row of the transmission sequence v′_(j) of the jth block (an element in the ith column of the transmission sequence v′_(j) ^(T), which is a transpose of the transmission sequence v′_(j), in FIG. 150) is represented by Y_(j,g) (g=1, 2, 3, . . . , 4×M−2,4×M−1,4×M), a vector generated by extracting the ith column of the parity check matrix H′_(cm) is c_(g), if the above-mentioned vector c_(k) is used, the parity check matrix for the transmission sequence v′_(j) of the jth block obtained is not limited to those obtained in the above-mentioned example, and other parity check matrices for the transmission sequence v′_(j) of the jth block can also be obtained. The following describes the above-mentioned interpretation. General description of reordering of elements of the transmission sequence (codeword) is made first. FIG. 105 shows the configuration of the parity check matrix H for the LDPC (block) code having a coding rate of (N−M)/N(N>M>0). The parity check matrix shown in FIG. 105 is, for example, a matrix with M rows and N columns. In FIG. 105, a transmission sequence (codeword) v_(j) ^(T) of the jth block is represented by v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)) (in the case of a systematic code, Y_(j,k) (k is an integer not less than one and not more than N) is the information X or the parity P). In this case, Hv_(j)=0 holds true (the zero in Hv_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is zero for all the values of k (k is an integer not less than one and not more than M)). In this case, an element in the kth row (k is an integer not less than one and not more than N) of the transmission sequence v_(j) of the jth block (an element in the kth column of a transmission sequence v_(j) ^(T), which is a transpose of the transmission sequence v_(j), in FIG. 105) is Y_(j,k). A vector generated by extracting the kth column of the parity check matrix H for the LDPC (block) code having a coding rate of (N−M)/N(N>M>0) is represented by c_(k) as shown in FIG. 105. In this case, the parity check matrix H for the LDPC (block) code is represented as shown below.

[Math. 409]

H=[c ₁ c ₂ c ₃ . . . c _(N−2) c _(N−1) c _(N)]  (Math. 409)

FIG. 106 shows the configuration when interleaving is performed on the transmission sequence (codeword) of the jth block v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)). In FIG. 106, the encoding section 10602 receives information 10601 as input, performs coding thereon, and outputs coded data 10603. For example, when coding of the LDPC (block) code having a coding rate of (N−M)/N(N>M>0) shown in FIG. 106 is performed, the encoding section 10602 receives information of the jth block as input, performs coding thereon based on the parity check matrix H for the LDPC (block) code having a coding rate of (N−M)/N(N>M>0) shown in FIG. 105, and outputs the transmission sequence (codeword) of the jth block v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N))′Then, the accumulation and reordering section (interleaving section) 10604 receives the encoded data 10603 as input, accumulates the encoded data 10603, performs reordering thereon, and outputs the interleaved data 10605. Accordingly, the accumulation and reordering section (interleaving section) 10604 receives the transmission sequence v_(j) of the jth block v_(j)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N))^(T) as input, reorders elements of the transmission sequence v_(j), and outputs the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) as shown in FIG. 106. As described above, a transmission sequence obtained by reordering elements of the transmission sequence v_(j) of the jth block is the transmission sequence v′_(j). Therefore, v′_(j) is a vector with one row and N columns. Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N) each appear once in N elements of v′_(j).

Considered is an encoding section 10607 that has functions of the encoding section 10602 and the accumulation and reordering section (interleaving section) 10604 as shown in FIG. 106. Accordingly, the encoding section 10607 receives information 10601 as input, performs coding thereon, and outputs coded data 10603. For example, the encoding section 10607 receives information of the jth block as input, and outputs a transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) as shown in FIG. 106. The following describes the parity check matrix H′ for the LDPC (block) code having a coding rate of (N−M)/N(N>M>0), which corresponds to the encoding section 10607 in this case, with use of FIG. 107.

FIG. 107 shows the configuration of the parity check matrix H′ when the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). In this case, an element in the first row of the transmission sequence v′₁ of the jth block (an element in the first column of a transmission sequence v′_(j) ^(T), which is a transpose of the transmission sequence v′_(j), in FIG. 107) is Y_(j,32). Therefore, when the above-mentioned vector c_(k) (k=1, 2, 3, . . . , N−2, N−1, N) is used, a vector generated by extracting the first column of the parity check matrix H′ is c₃₂. Similarly, an element in the second row of the transmission sequence v′_(j) of the jth block (an element in the second column of the transmission sequence v′_(j) ^(T), which is a transpose of the transmission sequence v′_(j), in FIG. 107) is Y_(j,99). Therefore, a vector generated by extracting the second column of the parity check matrix H′ is c₉₉. According to FIG. 107, a vector generated by extracting the third column of the parity check matrix H′ is c₂₃, a vector generated by extracting the (N−2)th column of the parity check matrix H′ is c₂₃₄, a vector generated by extracting the (N−1)th column of the parity check matrix H′ is c₃, and a vector generated by extracting the Nth column of the parity check matrix H′ is c₄₃. That is to say, when an element in the ith row of the transmission sequence v′_(j) of the jth block (an element in the ith column of the transmission sequence v′_(j) ^(T), which is a transpose of the transmission sequence v′_(j), in FIG. 107) is represented by Y_(j,g) (g=1, 2, 3, . . . , N−2, N−1, N), a vector generated by extracting the ith column of the parity check matrix H′ is c_(g), if the above-mentioned vector c_(k) is used.

Therefore, the parity check matrix H′ when the transmission sequence (codeword) v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T) is represented as shown below.

[Math. 410]

H′=[c ₃₂ c ₉₉ c ₂₃ . . . c ₂₃₄ c ₃ c ₄₃]  (Math. 410)

If the parity check matrix is created according to the aforementioned rule of: when an element in the ith row of the transmission sequence v′_(j) of the jth block (an element in the ith column of the transmission sequence v′_(j) ^(T), which is a transpose of the transmission sequence v′_(j), in FIG. 107) is represented by Y_(j,g) (g=1, 2, 3, . . . , N−2, N−1, N), a vector generated by extracting the ith column of the parity check matrix H′ is c_(g), if the above-mentioned vector c_(k) is used, the parity check matrix for the transmission sequence v′_(j) of the jth block obtained is not limited to those obtained in the above-mentioned example, and other parity check matrices for the transmission sequence v′_(j) of the jth block can also be obtained.

Accordingly, when interleaving is performed on the transmission sequence (codeword) for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾, as described above, the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ on which a column replacement has been performed is the parity check matrix for the transmission sequence (codeword) on which interleaving has been performed. Accordingly, when elements of the transmission sequence (codeword) on which interleaving has been performed are returned to an original order, the above-described transmission sequence (codeword) for the concatenated code is naturally obtained. The parity check matrix thereof is the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾.

FIG. 108 shows an example of the configuration relating to decoding in a receiving device, when the encoding shown in FIG. 106 has been performed. Mapping, frequency conversion, modulated signal amplification and similar processing are performed in accordance with a modulation method with respect to the transmission sequence when the encoding shown in FIG. 106 has been performed to obtain a modulated signal. A transmitting device transmits the modulated signal. The receiving device then receives the modulated signal transmitted by the transmitting device to obtain a received signal. A bit log-likelihood ratio calculation section 10800 shown in FIG. 108 receives the received signal as input, calculates the log-likelihood ratio for each bit of the codeword, and outputs a log-likelihood ratio signal 10801. The operations of the transmitting device and the receiving device are described in Embodiment 15 with reference to FIG. 76.

For example, the transmitting device transmits a transmission sequence (codeword) of the jth block v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). Then, the bit log-likelihood ratio calculation section 10800 calculates the log-likelihood ratio for Y_(j,32), the log-likelihood ratio for Y_(j,99), the log-likelihood ratio for Y_(j,23), . . . , the log-likelihood ratio for Y_(j,234), the log-likelihood ratio for Y_(j,3), and the log-likelihood ratio for Y_(j,43) from the received signal, and outputs the log-likelihood ratios.

An accumulation and reordering section (deinterleaving section) 10802 receives the log-likelihood ratio signal 10801 as input, performs accumulation and reordering thereon, and outputs a deinterleaved log-likelihood ratio signal 10803.

For example, the accumulation and reordering section (deinterleaving section) 10802 receives the log-likelihood ratio for Y_(j,32), the log-likelihood ratio for Y_(j,99), the log-likelihood ratio for Y_(j,23), . . . , the log-likelihood ratio for Y_(j,234), the log-likelihood ratio for Y_(j,3), and the log-likelihood ratio for Y_(j,43) as input, performs reordering, and outputs the log-likelihood ratios in the order of: the log-likelihood ratio for Y_(j,1), the log-likelihood ratio for Y_(j,2), the log-likelihood ratio for Y_(j,3), . . . , the log-likelihood ratio for Y_(j,N−2), the log-likelihood ratio for Y_(j,N−1), and the log-likelihood ratio for Y_(j,N).

A decoder 10604 receives the deinterleaved log-likelihood ratio signal 1803 as input, performs belief propagation decoding, such as BP decoding, sum-product decoding, min-sum decoding, offset BP decoding, Normalized BP decoding, Shuffled BP decoding, and Layered BP decoding in which scheduling is performed as disclosed in Non-Patent Literatures 4 to 6, based on the parity check matrix H for the LDPC (block) code having a coding rate of (N−M)/N(N>M>0) as shown in FIG. 105 to obtain an estimated sequence 10805.

For example, the decoder 10604 receives the log-likelihood ratio for Y_(j,1), the log-likelihood ratio for Y_(j,2), the log-likelihood ratio for Y_(j,3), . . . , the log-likelihood ratio for Y_(j,N−2), the log-likelihood ratio for Y_(j,N−1), and the log-likelihood ratio for Y_(j,N) in this order as input, performs belief propagation decoding based on the parity check matrix H for the LDPC (block) code having a coding rate of (N−M)/N(N>M>0) as shown in FIG. 105 to obtain the estimated sequence.

The configuration relating to decoding that is different from that described above is described next. The configuration described here is different from that described above in that the accumulation and reordering section (deinterleaving section) 10802 is omitted. The operations of the bit log-likelihood ratio calculation section 10800 are identical to those described above, and thus the description thereof is omitted here. For example, the transmitting device transmits a transmission sequence (codeword) of the jth block v′_(j)=(Y_(j,32), Y_(j,99), Y_(j,23), . . . , Y_(j,234), Y_(j,3), Y_(j,43))^(T). Then, the bit log-likelihood ratio calculation section 10800 calculates the log-likelihood ratio for Y_(j,32), the log-likelihood ratio for Y_(j,99), the log-likelihood ratio for Y_(j,23), . . . , the log-likelihood ratio for Y_(j,234), the log-likelihood ratio for Y_(j,3), and the log-likelihood ratio for Y_(j,43) from the received signal, and outputs the log-likelihood ratios (corresponding to 10806 shown in FIG. 108).

A decoder 10607 receives the bit log-likelihood ratio signal 1806 as input, performs belief propagation decoding, such as BP decoding, sum-product decoding, min-sum decoding, offset BP decoding, Normalized BP decoding, Shuffled BP decoding, and Layered BP decoding in which scheduling is performed as disclosed in Non-Patent Literatures 4 to 6, based on the parity check matrix H′ for the LDPC (block) code having a coding rate of (N−M)/N(N>M>0) as shown in FIG. 107 to obtain an estimated sequence 10809.

For example, the decoder 10607 receives the log-likelihood ratio for Y_(j,32), the log-likelihood ratio for Y_(j,99), the log-likelihood ratio for Y_(j,23), . . . , the log-likelihood ratio for Y_(j,234), the log-likelihood ratio for Y_(j,3), and the log-likelihood ratio for Y_(j,43) in this order as input, performs belief propagation decoding based on the parity check matrix H for the LDPC (block) code having a coding rate of (N−M)/N(N>M>0) as shown in FIG. 107 to obtain the estimated sequence.

As described above, even when the transmitting device performs interleaving on the transmission sequence v_(j) of the jth block v_(j)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N))^(T) and transmits reordered data pieces, the receiving device can obtain the estimated sequence by using the parity check matrix corresponding to the reordering. Accordingly, when interleaving is performed on the transmission sequence (codeword) for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾, as described above, the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ on which a column replacement has been performed is the parity check matrix for the transmission sequence (codeword) on which interleaving has been performed. By using the parity check matrix for the transmission sequence (codeword) on which interleaving has been performed, the receiving device can perform belief propagation decoding and obtain the estimated sequence without performing deinterleaving on the log-likelihood ratio for each acquired bit.

The relation between interleaving on the transmission sequence and the parity check matrix has been described above. The following describes row replacement performed on the parity check matrix

FIG. 109 shows the configuration of the parity check matrix H corresponding to the transmission sequence (codeword) v_(j) ^(T)=(Y_(j,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)) of the jth block for the LDPC (block) code having a coding rate of (N−M)/N (in the case of a systematic code, Y_(j,k) (k is an integer not less than one and not more than N) is the information X or the parity P. Y_(j,k) is made up of (N−M) information pieces and M parities). In this case, Hv_(j)=0 holds true (the zero in Hv_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is zero for all the values of k (k is an integer not less than one and not more than M)). A vector generated by extracting the kth row (k is an integer not less than one and not more than M) of the parity check matrix H shown in FIG. 109 is represented by z_(k). In this case, the parity check matrix H for the LDPC (block) code is represented as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 411} \right\rbrack & \; \\ {H = \begin{bmatrix} z_{1} \\ z_{2} \\ \vdots \\ z_{M - 1} \\ z_{M} \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 411} \right) \end{matrix}$

Considered next is a parity check matrix obtained by performing row replacement on the parity check matrix H shown in FIG. 109. FIG. 110 shows an example of a parity check matrix H′ obtained by performing row replacement on the parity check matrix H. The parity check matrix H′ is, similar to that shown in FIG. 109, a parity check matrix corresponding to the transmission sequence (codeword) v_(j) ^(T) (Y_(1,1), Y_(j,2), Y_(j,3), . . . , Y_(j,N−2), Y_(j,N−1), Y_(j,N)) of the jth block for the LDPC (block) code having a coding rate of (N−M)/N. The parity check matrix H′ shown in FIG. 110 is made up of vectors z_(k) generated by extracting the kth row (k is an integer not less than one and not more than M) of the parity check matrix H shown in FIG. 109. By way of example, the first row of the parity check matrix H′ is composed of z₁₃₀, the second row of the parity check matrix H′ is composed of z₂₄, the third row of the parity check matrix H′ is composed of z₄₅, . . . , the (M−2)th row of the parity check matrix H′ is composed of z₃₃, the (M−1)th row of the parity check matrix H′ is composed of z₃₉, and the Mth row of the parity check matrix H′ is composed of z₃. Here, z₁, z₂, z₃, . . . , z_(M−2), z_(M−1), z_(M) each appear once in M row vectors generated by extracting the kth row (k is an integer not less than one and not more than M) of the parity check matrix H′. In this case, the parity check matrix H′ for the LDPC (block) code is represented as shown below.

$\begin{matrix} \left\lbrack {{Math}.\mspace{14mu} 412} \right\rbrack & \; \\ {H^{\prime} = \begin{bmatrix} z_{130} \\ z_{24} \\ \vdots \\ z_{9} \\ z_{3} \end{bmatrix}} & \left( {{Math}.\mspace{14mu} 412} \right) \end{matrix}$

In this case, H′v_(j)=0 holds true (the zero in H′v_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is zero for all the values of k (k is an integer not less than one and not more than M)). That is to say, in the case of the transmission sequence v_(j) ^(T) of the jth block, a vector generated by extracting the ith column of the parity check matrix H′ is represented by any of vectors c_(k) (k is an integer not less than one and not more than M), and z₁, z₂, z₃, . . . , z_(M−2), z_(M−1), z_(M) each appear once in M row vectors generated by extracting the kth row (k is an integer not less than one and not more than M) of the parity check matrix H′.

If the parity check matrix is created according to the aforementioned rule of: in the case of the transmission sequence v_(j) ^(T) of the jth block, a vector generated by extracting the ith column of the parity check matrix H′ is represented by any of vectors c_(k) (k is an integer not less than one and not more than M), and z₁, z₂, z₃, . . . , z_(M−2), z_(M−1), z_(M) each appear once in M row vectors generated by extracting the kth row (k is an integer not less than one and not more than M) of the parity check matrix H′, the parity check matrix for the transmission sequence v_(j) of the jth block obtained is not limited to those obtained in the above-mentioned example, and other parity check matrices for the transmission sequence v_(j) of the jth block can also be obtained.

Accordingly, when the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ is used, the parity check matrix described with use of FIGS. 143 through 148 is not necessarily used. As described above, a parity check matrix obtained by performing column replacement or row replacement on the parity check matrix shown in FIGS. 144 and 148 may be used.

The following describes the concatenated code concatenating the accumulator, via the interleaver, shown in FIGS. 89 and 90 with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme.

Assuming that the number of bits of information X₁ in one block, the number of bits of information X₂ in one block, the number of bits of information X₃ in one block, and a parity bit (Pc, parity Pc refers to parity in the above-described concatenated code) are each M bits (because a coding rate is ¾) in the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme,

the information X₁ of M bits of the jth block is represented by X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M,)

the information X₂ of M bits of the jth block is represented by X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M,)

the information X₃ of M bits of the jth block is represented by X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k), . . . , X_(j,3,M, and)

the parity bit Pc of M bits of the jth block is represented by Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M) (therefore, k=1, 2, 3, . . . , M−1, M).

A transmission sequence is represented by v_(j)=(X_(j,1,1), X_(j,1,2), . . . , X_(j,1,k), . . . , X_(j,1,M), X_(j,2,1), X_(j,2,2), . . . , X_(j,2,k), . . . , X_(j,2,M), X_(j,3,1), X_(j,3,2), . . . , X_(j,3,k), . . . , X_(j,3,M), Pc_(j,1), Pc_(j,2), . . . , Pc_(j,k), . . . , Pc_(j,M))^(T). The parity check matrix H_(cm) for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme is represented as shown in FIG. 144. The parity check matrix H_(cm) is also represented by H_(cm)=[H_(cx,1), H_(cx,2), H_(cx,3), H_(cp)] (in this case, H_(cm)v_(j)=0 holds true. The zero in H_(cm)v_(j)=0 here indicates that all elements of the vector are zeros. That is to say, a value of the kth row is zero for all the values of k (k is an integer not less than one and not more than M)). In this case, H_(x,1) is the partial matrix relating to the information X₁ of the parity check matrix H_(cm) for the above-mentioned concatenated code, H_(cx,2) is the partial matrix relating to the information X₂ of the parity check matrix H_(cm) for the above-mentioned concatenated code, H_(cx,3) is the partial matrix relating to the information X₃ of the parity check matrix H_(cm) for the above-mentioned concatenated code, and H_(cp) is the partial matrix relating to the parity Pc (parity Pc refers to parity in the concatenated code) of the parity check matrix H_(cm) for the above-mentioned convolutional code. As shown in FIG. 144, the parity check matrix H_(cm) is a matrix with M rows and 4×M columns. The partial matrix H_(cx,1) relating to the information X₁, the partial matrix H_(cx,2) relating to the information X₂, the partial matrix H_(cx,3) relating to the information X₃, and the partial matrix H_(cp) relating to the parity P_(c) are each a matrix with M rows and M columns. The configuration of the partial matrix H_(cx) relating to the information X₁, X₂, and X₃ is as described above with use of FIG. 145. Accordingly, only the configuration of the partial matrix H_(cp) relating to the parity Pc is described below.

FIG. 111 shows an example of the configuration of the partial matrix H_(cp) relating to the parity Pc when the accumulator shown in FIG. 89 is applied. Assuming that an element in the ith row and the jth column of the partial matrix H_(cp) relating to the parity Pc is represented by H_(cp,comp)[i][j](i and j are each an integer not less than one and not more than M (i, j=1, 2, 3, . . . , M−1, M)) in the configuration of the partial matrix H_(cp) relating to the parity Pc shown in FIG. 111 when the accumulator shown in FIG. 89 is applied, the following Math holds true.

[Math. 413]

H _(cp,comp) [i][i]=1 for ∀i;i=2,3, . . . ,M−1,M  (Math. 413)

(i is an integer not less than 1 and not more than M (i=1, 2, 3, . . . , M−1, M), and Math. 413 holds true for all values of i that satisfy this condition)

The following Math also holds true.

[Math. 414]

i is an integer not less than 1 and not more than M (i=1, 2, 3, . . . , M−1, M), j is an integer not less than 1 and not more than M (j=1, 2, 3, . . . , M−1, M), i>j, and values of i and j that satisfy Math. 414 exist.

H _(cp,comp) [i][j]=1 for i>j;i,j=1,2,3, . . . ,M−1,M  (Math. 414)

The following Math also holds true.

[Math. 415]

i is an integer not less than 1 and not more than M (i=1, 2, 3, . . . , M−1, M), j is an integer not less than 1 and not more than M (j=1, 2, 3, . . . , M−1, M), i<j, and Math. 415 holds true for all values of i and j.

H _(cp,comp) [i][j]=0 for ∀i∀j;i<j;i,j=1,2,3, . . . ,M−1,M  (Math. 415)

The partial matrix H_(cp) relating to the parity Pc when the accumulator shown in FIG. 89 is applied satisfies the above-mentioned conditions. FIG. 112 shows an example of the configuration of the partial matrix H_(cp) relating to the parity Pc when the accumulator shown in FIG. 90 is applied.

Assuming that an element in the ith row and the jth column of the partial matrix H_(cp) relating to the parity Pc is represented by H_(cp,comp)[i][j](i and j are each an integer not less than one and not more than M (i, j=1, 2, 3, . . . , M−1, M)) in the configuration of the partial matrix H_(cp) relating to the parity Pc shown in FIG. 112 when the accumulator shown in FIG. 90 is applied, the following Maths hold true.

[Math. 416]

H _(cp,comp) [i][j]=1 for ∀i;i=1,2,3, . . . ,M−1,M  (Math. 416)

(i is an integer not less than 1 and not more than M (i=1, 2, 3, . . . , M−1, M), and Math. 416 holds true for all values of i that satisfy this condition)

[Math. 417]

H _(cp,comp) [i][i−1]=0 for ∀i;i=2,3, . . . ,M−1,M  (Math. 417)

(i is an integer not less than 2 and not more than M (i=2, 3, . . . , M−1, M), and Math. 417 holds true for all values of i that satisfy this condition)

The following Math also holds true.

[Math. 418]

i is an integer not less than 1 and not more than M (i=1, 2, 3, . . . , M−1, M), j is an integer not less than 1 and not more than M (j=1, 2, 3, . . . , M−1, M), i−j≧2, and values of i and j that satisfy Math. 418 exist.

H _(cp,comp) [i][j]=1 for i−j≧2;i,j=1,2,3, . . . ,M−1,M  (Math. 418)

The following Math also holds true.

[Math. 419]

i is an integer not less than 1 and not more than M (i=1, 2, 3, . . . , M−1, M), j is an integer not less than 1 and not more than M (j=1, 2, 3, . . . , M−1, M), i<j, and Math. 419 holds true for all values of i and j.

H _(cp,comp) [i][j]=0 for ∀i∀j;i<j;i,j=1,2,3, . . . ,M−1,M  (Math. 419)

The partial matrix H_(cp) relating to the parity Pc when the accumulator shown in FIG. 90 is applied satisfies the above-mentioned conditions.

The encoding section shown in FIG. 139, the encoding section obtained by applying the accumulator shown in FIG. 89 to FIG. 139, and the encoding section obtained by applying the accumulator shown in FIG. 90 to FIG. 139 do not always have to obtain the parity based on the configuration shown in FIG. 139. The parity may be obtained from the parity check matrix described thus far. In this case, the information X₁, X₂, and X₃ of the jth block may be collectively accumulated, and the parity may be obtained by using the accumulated information X₁, X₂, and X₃, and the parity check matrix.

The following describes a code generation method when the column weight is equal for all columns of the partial matrix relating to the information X₁, the partial matrix relating to the information X₂, and the partial matrix relating to the information X₃ in the parity check matrix for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾. As described above, in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q used in the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾, the gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero (see Math. 128) is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 420} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 420} \right) \end{matrix}$

In Math 420, a_(#g,p,q) (p=1, 2, or 3; q=1, 2, . . . , r_(p)) is a natural number. a_(#g,p,y)≠a_(#g,p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z. If r₁, r₂, and r₃ are each set to be equal to or greater than three, high error-correction capability is achieved. The following function is defined with respect to polynomial portions of the parity check polynomial satisfying zero in Math. 420.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 421} \right\rbrack} & \; \\ {{F_{g}(D)} = {{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}}} & \left( {{Math}.\mspace{14mu} 421} \right) \end{matrix}$

The following two methods allow the use of a time-varying period of q

Method 1:

[Math. 422]

F _(i)(D)≠F _(j)(D)∀i∀j i,j=0,1,2, . . . ,q−2,q−1;i≠j  (Math. 422)

(i is an integer not less than zero and not more than q−1, j is an integer not less than zero and not more than q−1, i≠j, and F_(i)(D)≠F_(j)(D) for all values of i and j that satisfy this condition).

Method 2:

[Math. 423]

F _(i)(D)≠F _(j)(D)  (Math. 423)

Here, i is an integer not less than zero and not more than q−1, j is an integer not less than zero and not more than q−1, i≠j, and values of i and j that satisfy Math. 423 exist. The following Math also holds true.

[Math. 424]

F _(i)(D)=F _(j)(D)  (Math. 424)

Here, i is an integer not less than zero and not more than q−1, j is an integer not less than zero and not more than q−1, i≠j, values of i and j that satisfy Math. 424 exist, but the time-varying period is q. Method 1 and Method 2 for forming the time-varying period of q are also performed in a similar manner when polynomial portions of the parity check polynomial satisfying zero in Math. 428 are defined by using the function Γ_(g)(D), as described later.

Described next is an example of a setting of a_(#g,p,q) in Math. 420, particularly in a case where r₁, r₂, and r₃ are each set to three. When r₁, r₂, and r₃ are each set to three, the parity check polynomial satisfying zero in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q is provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 425} \right\rbrack} & \; \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}}\; {{zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + D^{{a{\# 0}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + D^{{a{\# 0}},2,3} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 0}},3,1} + D^{{a{\# 0}},3,2} + D^{{a{\# 0}},3,3} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 425}\text{-}0} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}}{{first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + D^{{a{\# 1}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + D^{{a{\# 1}},2,3} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 1}},3,1} + D^{{a{\# 1}},3,2} + D^{{a{\# 1}},3,3} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 425}\text{-}1} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}}{{second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + D^{{a{\# 2}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + D^{{a{\# 2}},2,3} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 2}},3,1} + D^{{a{\# 2}},3,2} + D^{{a{\# 2}},3,3} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 425}\text{-}2} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}}{{gth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + D^{{a\# g},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + D^{{a\# g},2,3} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + D^{{a\# g},3,3} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}\vdots} & \left( {{{Math}.\mspace{14mu} 425}\text{-}g} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {{the}\text{}\left( {q\text{-}2} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q\text{-}2})}},1,1} + D^{{a\# {({q\text{-}2})}},1,2} + D^{{a\# {({q\text{-}2})}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q\text{-}2})}},2,1} + D^{{a\# {({q\text{-}2})}},2,2} + D^{{a\# {({q\text{-}2})}},2,3} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q\text{-}2})}},3,1} + D^{{a\# {({q\text{-}2})}},3,2} + D^{{a\# {({q\text{-}2})}},3,3} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 425}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {{the}\text{}\left( {q\text{-}1} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q\text{-}1})}},1,1} + D^{{a\# {({q\text{-}1})}},1,2} + D^{{a\# {({q\text{-}1})}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q\text{-}1})}},2,1} + D^{{a\# {({q\text{-}1})}},2,2} + D^{{a\# {({q\text{-}1})}},2,3} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q\text{-}1})}},3,1} + D^{{a\# {({q\text{-}1})}},3,2} + D^{{a\# {({q\text{-}1})}},3,3} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 425}\text{-}\left( {q\text{-}1} \right)} \right) \end{matrix}$

In this case, considering the description made in Embodiment 1 and Embodiment 6, high error-correction capability is achieved when the following condition is satisfied in the first place.

<Condition 20-2>

a_(#0, 1, 1)%q = a_(#1, 1, 1)%q = a_(#2, 1, 1)%q = a_(#3, 1, 1)%q = … = a_(#g, 1, 1)%q = … = a_(#(q − 2), 1, 1)%q = a_(#(q − 1), 1, 1)%q = v_(1, 1)(v_(1, 1):  fixed  value) a_(#0, 1, 2)%q = a_(#1, 1, 2)%q = a_(#2, 1, 2)%q = a_(#3, 1, 2)%q = … = a_(#g, 1, 2)%q = … = a_(#(q − 2), 1, 2)%q = a_(#(q − 1), 1, 2)%q = v_(1, 2)(v_(1, 2):  fixed  value) a_(#0, 1, 3)%q = a_(#1, 1, 3)%q = a_(#2, 1, 3)%q = a_(#3, 1, 3)%q = … = a_(#g, 1, 3)%q = … = a_(#(q − 2), 1, 3)%q = a_(#(q − 1), 1, 3)%q = v_(1, 3)(v_(1, 3):  fixed  value) a_(#0, 2, 1)%q = a_(#1, 2, 1)%q = a_(#2, 2, 1)%q = a_(#3, 2, 1)%q = … = a_(#g, 2, 1)%q = … = a_(#(q − 2), 2, 1)%q = a_(#(q − 1), 2, 1)%q = v_(2, 1)(v_(2, 1):  fixed  value) a_(#0, 2, 2)%q = a_(#1, 2, 2)%q = a_(#2, 2, 2)%q = a_(#3, 2, 2)%q = … = a_(#g, 2, 2)%q = … = a_(#(q − 2), 2, 2)%q = a_(#(q − 1), 2, 2)%q = v_(2, 2)(v_(2, 2):  fixed  value) a_(#0, 2, 3)%q = a_(#1, 2, 3)%q = a_(#2, 2, 3)%q = a_(#3, 2, 3)%q = … = a_(#g, 2, 3)%q = … = a_(#(q − 2), 2, 3)%q = a_(#(q − 1), 2, 3)%q = v_(2, 3)(v_(2, 3):  fixed  value) a_(#0, 3, 1)%q = a_(#1, 3, 1)%q = a_(#2, 3, 1)%q = a_(#3, 3, 1)%q = … = a_(#g, 3, 1)%q = … = a_(#(q − 2), 3, 1)%q = a_(#(q − 1), 3, 1)%q = v_(3, 1)(v_(3, 1):  fixed  value) a_(#0, 3, 2)%q = a_(#1, 3, 2)%q = a_(#2, 3, 2)%q = a_(#3, 3, 2)%q = … = a_(#g, 3, 2)%q = … = a_(#(q − 2), 3, 2)%q = a_(#(q − 1), 3, 2)%q = v_(3, 2)(v_(3, 2):  fixed  value) a_(#0, 3, 3)%q = a_(#1, 3, 3)%q = a_(#2, 3, 3)%q = a_(#3, 3, 3)%q = … = a_(#g, 3, 3)%q = … = a_(#(q − 2), 3, 3)%q = a_(#(q − 1), 3, 3)%q = v_(3, 3)(v_(3, 3):  fixed  value)

In the above description, % means a modulo, and for example, α%q represents a remainder after dividing α by q. Condition 20-2 may also be expressed as shown below.

a _(#k,1,1)%q=v _(1,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,1): fixed value)  <Condition 20-2′>

(k is an integer not less than zero and not more than q−1, a_(#k,1,1)%q=v₁ (v_(1,1): fixed value) for all values of k)

a _(#k,1,2)%q=v _(1,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,2): fixed value)

(k is an integer not less than zero and not more than q−1, a_(#k,1,2)%q=v_(1,2) (v_(1,2): fixed value) for all values of k)

a _(#k,1,3)%q=v _(1,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,3): fixed value)

(k is an integer not less than zero and not more than q−1, a_(#k,1,3)%q=v_(1,3) (v_(1,3): fixed value) for all values of k)

a _(#k,2,1)%q=v _(2,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,1): fixed value)

(k is an integer not less than zero and not more than q−1, a_(#k,2,1)%q=v_(2,1) (v_(2,1): fixed value) for all values of k)

a _(#k,2,2)%q=v _(2,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,2): fixed value)

(k is an integer not less than zero and not more than q−1, a_(#k,2,2)%q=v_(2,2) (v_(2,2): fixed value) for all values of k)

a _(#k,2,3)%q=v _(2,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,3): fixed value)

(k is an integer not less than zero and not more than q−1, a_(#k,2,3)%q=v_(2,3) (v_(2,3): fixed value) for all values of k)

a _(#k,3,1)%q=v _(3,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,1): fixed value)

(k is an integer not less than zero and not more than q−1, a_(#k,3,1)%q=v_(3,1) (v_(3,1): fixed value) for all values of k)

a _(#k,3,2)%q=v _(3,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,2): fixed value)

(k is an integer not less than zero and not more than q−1, a_(#k,3,2)%q=v_(3,2) (v_(3,2): fixed value) for all values of k)

a _(#k,3,3)%q=v _(3,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,3): fixed value)

(k is an integer not less than zero and not more than q−1, a_(#k,3,3)%q=v_(3,3) (v_(3,3): fixed value) for all values of k)

As described in Embodiments 1 and 6, high error-correction capability is achieved when the following condition is further satisfied.

<Condition 20-3>

v_(1, 1) ≠ v_(1, 2), v_(1, 1) ≠ v_(1, 3), v_(1, 2) ≠ v_(1, 3), v_(1, 1) ≠ 0, v_(1, 2) ≠ 0, and  v_(1, 3) ≠ 0 v_(2, 1) ≠ v_(2, 2), v_(2, 1) ≠ v_(2, 3), v_(2, 2) ≠ v_(2, 3), v_(2, 1) ≠ 0, v_(2, 2) ≠ 0, and  v_(2, 3) ≠ 0 v_(3, 1) ≠ v_(3, 2), v_(3, 1) ≠ v_(3, 3), v_(3, 2) ≠ v_(3, 3), v_(3, 1) ≠ 0, v_(3, 2) ≠ 0, and  v_(3, 3) ≠ 0

In order to satisfy Condition 20-3, the time-varying period q is required to be equal to or greater than four (This is derived from the number of terms of X₁(D), X₂(D), and X₃(D) in the parity check polynomial).

High error-correction capability is achieved when the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ satisfies the above-mentioned conditions. High error-correction capability may also be achieved if r₁, r₂, and r₃ are each greater than three. The following describes the above-mentioned case. When r₁, r₂, and r₃ are each set to be equal to or greater than four, the parity check polynomial satisfying zero in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q is provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 426} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 426} \right) \end{matrix}$

In Math 426, a_(#g,p,q) (p=1, 2, or 3; q=1, 2, . . . , r_(p)) is a natural number. a_(#g,p,y)≠a_(#g,p,z) for ^(∀)(y, z) in y, z=1, 2, . . . , r_(p), y≠z. Since r₁, r₂, and r₃ are each set to be equal to or greater than four, and the column weight is equal for all columns of the partial matrix relating to the information X₁, the partial matrix relating to the information X₂, and the partial matrix relating to the information X₃, r₁=r₂=r₃=r holds true. The parity check polynomial satisfying zero in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period of q is therefore provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 427} \right\rbrack} & \; \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}}\text{}{{zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,r} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 0}},3,1} + D^{{a{\# 0}},3,2} + \ldots + D^{{a{\# 0}},3,r} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 427}\text{-}0} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}}\text{}{{first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,r} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 1}},3,1} + D^{{a{\# 1}},3,2} + \ldots + D^{{a{\# 1}},3,r} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 427}\text{-}1} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}}\text{}{{second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,r} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 2}},3,1} + D^{{a{\# 2}},3,2} + \ldots + D^{{a{\# 2}},3,r} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}\vdots} & \left( {{{Math}.\mspace{14mu} 427}\text{-}2} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {the}}\text{}{{gth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,r} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,r} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}\vdots} & \left( {{{Math}.\mspace{14mu} 427}\text{-}g} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {{the}\left( {q\text{-}2} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q\text{-}2})}},1,1} + D^{{a\# {({q\text{-}2})}},1,2} + \ldots + D^{{a\# {({q\text{-}2})}},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q\text{-}2})}},2,1} + D^{{a\# {({q\text{-}2})}},2,2} + \ldots + D^{{a\# {({q\text{-}2})}},2,r} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q\text{-}2})}},3,1} + D^{{a\# {({q\text{-}2})}},3,2} + \ldots + D^{{a\# {({q\text{-}2})}},3,r} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 427}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{The}\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {{the}\text{}\left( {q\text{-}1} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q\text{-}1})}},1,1} + D^{{a\# {({q\text{-}1})}},1,2} + \ldots + D^{{a\# {({q\text{-}1})}},1,r} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q\text{-}1})}},2,1} + D^{{a\# {({q\text{-}1})}},2,2} + \ldots + D^{{a\# {({q\text{-}1})}},2,r} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q\text{-}1})}},3,1} + D^{{a\# {({q\text{-}1})}},3,2} + \ldots + D^{{a\# {({q\text{-}1})}},3,r} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 427}\text{-}\left( {q\text{-}1} \right)} \right) \end{matrix}$

Taking the explanations provided in Embodiments 1 and 6 into consideration, high error-correction capability is achievable when the following condition is satisfied.

<Condition 20-4>

a_(#0, 1, 1)%q = a_(#1, 1, 1)%q = a_(#2, 1, 1)%q = a_(#3, 1, 1)%q = … = a_(#g, 1, 1)%q = … = a_(#(q − 2), 1, 1)%q = a_(#(q − 1), 1, 1)%q = v_(1, 1)(where  v_(1, 1)  is  a  fixed  value) a_(#0, 1, 2)%q = a_(#1, 1, 2)%q = a_(#2, 1, 2)%q = a_(#3, 1, 2)%q = … = a_(#g, 1, 2)%q = … = a_(#(q − 2), 1, 2)%q = a_(#(q − 1), 1, 2)%q = v_(1, 2)(where  v_(1, 2)  is  a  fixed  value) a_(#0, 1, 3)%q = a_(#1, 1, 3)%q = a_(#2, 1, 3)%q = a_(#3, 1, 3)%q = … = a_(#g, 1, 3)%q = … = a_(#(q − 2), 1, 3)%q = a_(#(q − 1), 1, 3)%q = v_(1, 3)(where  v_(1, 3)  is  a  fixed  value)   ⋮ a_(#0, 1, r − 1)%q = a_(#1, 1, r − 1)%q = a_(#2, 1, r − 1)%q = a_(#3, 1, r − 1)%q = … = a_(#g, 1, r − 1)%q = … = a_(#(q − 2), 1, r − 1)%q = a_(#(q − 1), 1, r − 1)%q = v_(1, r − 1)(where  v_(1, r − 1)  is  a  fixed  value) a_(#0, 1, r)%q = a_(#1, 1, r)%q = a_(#2, 1, r)%q = a_(#3, 1, r)%q = … = a_(#g, 1, r)%q = … = a_(#(q − 2), 1, r)%q = a_(#(q − 1), 1, r)%q = v_(1, r)(where  v_(1, r)  is  a  fixed  value) a_(#0, 2, 1)%q = a_(#1, 2, 1)%q = a_(#2, 2, 1)%q = a_(#3, 2, 1)%q = … = a_(#g, 2, 1)%q = … = a_(#(q − 2), 2, 1)%q = a_(#(q − 1), 2, 1)%q = v_(2, 1)(where  v_(2, 1)  is  a  fixed  value) a_(#0, 2, 2)%q = a_(#1, 2, 2)%q = a_(#2, 2, 2)%q = a_(#3, 2, 2)%q = … = a_(#g, 2, 2)%q = … = a_(#(q − 2), 2, 2)%q = a_(#(q − 1), 2, 2)%q = v_(2, 2)(where  v_(2, 2)  is  a  fixed  value) a_(#0, 2, 3)%q = a_(#1, 2, 3)%q = a_(#2, 2, 3)%q = a_(#3, 2, 3)%q = … = a_(#g, 2, 3)%q = … = a_(#(q − 2), 2, 3)%q = a_(#(q − 1), 2, 3)%q = v_(2, 3)(where  v_(2, 3)  is  a  fixed  value)   ⋮ a_(#0, 2, r − 1)%q = a_(#1, 2, r − 1)%q = a_(#2, 2, r − 1)%q = a_(#3, 2, r − 1)%q = … = a_(#g, 2, r − 1)%q = … = a_(#(q − 2), 2, r − 1)%q = a_(#(q − 1), 2, r − 1)%q = v_(2, r − 1)(where  v_(2, r − 1)  is  a  fixed  value) a_(#0, 2, r)%q = a_(#1, 2, r)%q = a_(#2, 2, r)%q = a_(#3, 2, r)%q = … = a_(#g, 2, r)%q = … = a_(#(q − 2), 2, r)%q = a_(#(q − 1), 2, r)%q = v_(2, r)(where  v_(2, r)  is  a  fixed  value)a_(#0, 3, 1)%q = a_(#1, 3, 1)%q = a_(#2, 3, 1)%q = a_(#3, 3, 1)%q = … = a_(#g, 3, 1)%q = … = a_(#(q − 2), 3, 1)%q = a_(#(q − 1), 3, 1)%q = v_(3, 1)(where  v_(3, 1)  is  a  fixed  value) a_(#0, 3, 2)%q = a_(#1, 3, 2)%q = a_(#2, 3, 2)%q = a_(#3, 3, 2)%q = … = a_(#g, 3, 2)%q = … = a_(#(q − 2), 3, 2)%q = a_(#(q − 1), 3, 2)%q = v_(3, 2)(where  v_(3, 2)  is  a  fixed  value) a_(#0, 3, 3)%q = a_(#1, 3, 3)%q = a_(#2, 3, 3)%q = a_(#3, 3, 3)%q = … = a_(#g, 3, 3)%q = … = a_(#(q − 2), 3, 3)%q = a_(#(q − 1), 3, 3)%q = v_(3, 3)(where  v_(3, 3)  is  a  fixed  value)   ⋮ a_(#0, 3, r − 1)%q = a_(#1, 3, r − 1)%q = a_(#2, 3, r − 1)%q = a_(#3, 3, r − 1)%q = … = a_(#g, 3, r − 1)%q = … = a_(#(q − 2), 3, r − 1)%q = a_(#(q − 1), 3, r − 1)%q = v_(3, r − 1)(where  v_(3, r − 1)  is  a  fixed  value) a_(#0, 3, r)%q = a_(#1, 3, r)%q = a_(#2, 3, r)%q = a_(#3, 3, r)%q = … = a_(#g, 3, r)%q = … = a_(#(q − 2), 3, r)%q = a_(#(q − 1), 3, r)%q = v_(3, r)(where  v_(3, r)  is  a  fixed  value)

In the above condition, % means a modulo, and thus, α%q represents a remainder after dividing α by q. Condition 20-4 is also expressible as follows. Here, j is an integer greater than or equal to one and less than or equal to r.

<Condition 20-4′>

a _(#k,1,j)%q=v _(1,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,j): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,j)%q=v_(j)(where v_(1,j) is a fixed value) holds for all k.)

a _(#k,2,j)%q=v _(2,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,j): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,j)%q=v_(2,j) (where v_(2,j) is a fixed value) holds for all k.)

a _(#k,3,j)%q=v _(3,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,j): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3)j %q=v₃ j (where v₃ j is a fixed value) holds for all k.)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

<Condition 20-5>

i is an integer greater than or equal to one and less than or equal to r, and v_(s,i)≠0 holds for all i, and

i is an integer greater than or equal to one and less than or equal to r, and j is an integer greater than or equal to one and less than or equal to r, and v_(s,i)≠v_(s,j) holds for all i and j, where i≠j

Here, s is an integer greater than or equal to one and less than or equal to three. To satisfy Condition 20-5, the time-varying period q is required to be equal to or greater than r+1. (This is derived from the number of terms of X₁(D) through X₃(D) in the parity check polynomial.)

High error-correction capability is achievable when the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ satisfies the above-mentioned conditions. Considered next is a case where, in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q used in the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ¾, the gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 428} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,_{r_{2}}}} \right)X_{2}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,_{r_{3}}}} \right){X_{3}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 428} \right) \end{matrix}$

In Math. 428, a_(#g,p,q) (p=1, 2, 3; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p) and y≠z, a_(#g,p,y)≠a_(#g,p,z) holds. Described is an example of a setting of a_(#g,p,q) in Math. 428, particularly in a case where r₁, r₂, and r₃ are each set to four. When r₁, r₂, and r₃ are each set to four, the parity check polynomial satisfying zero in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q is provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 429} \right\rbrack} & \; \\ {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}{{zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + D^{{a{\# 0}},1,3} + D^{{a{\# 0}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + D^{{a{\# 0}},2,3} + D^{{a{\# 0}},2,4}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 0}},3,1} + D^{{a{\# 0}},3,2} + D^{{a{\# 0}},3,3} + D^{{a{\# 0}},3,4}} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 429}\text{-}0} \right) \\ {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}{{first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + D^{{a{\# 1}},1,3} + D^{{a{\# 1}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + D^{{a{\# 1}},2,3} + D^{{a{\# 1}},2,4}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 1}},3,1} + D^{{a{\# 1}},3,2} + D^{{a{\# 1}},3,3} + D^{{a{\# 1}},3,4}} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 429}\text{-}1} \right) \\ {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}{{second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + D^{{a{\# 2}},1,3} + D^{{a{\# 2}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + D^{{a{\# 2}},2,3} + D^{{a{\# 2}},2,4}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 2}},3,1} + D^{{a{\# 2}},3,2} + D^{{a{\# 2}},3,3} + D^{{a{\# 2}},3,4}} \right){X_{3}(D)}} + {P(D)}} = 0}\vdots} & \left( {{{Math}.\mspace{14mu} 429}\text{-}2} \right) \\ {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}{{gth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + D^{{a\# g},1,3} + D^{{a\# g},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + D^{{a\# g},2,3} + D^{{a\# g},2,4}} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + D^{{a\# g},3,3} + D^{{a\# g},3,4}} \right){X_{3}(D)}} + {P(D)}} = 0}\vdots} & \left( {{{Math}.\mspace{14mu} 429}\text{-}g} \right) \\ {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\left( {q\text{-}2} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q\text{-}2})}},1,1} + D^{{a\# {({q\text{-}2})}},1,2} + D^{{a\# {({q\text{-}2})}},1,3} + D^{{a\# {({q\text{-}2})}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q\text{-}2})}},2,1} + D^{{a\# {({q\text{-}2})}},2,2} + D^{{a\# {({q\text{-}2})}},2,3} + D^{{a\# {({q\text{-}2})}},2,4}} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q\text{-}2})}},3,1} + D^{{a\# {({q\text{-}2})}},3,2} + D^{{a\# {({q\text{-}2})}},3,3} + D^{{a\# {({q\text{-}2})}},3,4}} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 429}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\left( {q\text{-}1} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q\text{-}1})}},1,1} + D^{{a\# {({q\text{-}1})}},1,2} + D^{{a\# {({q\text{-}1})}},1,3} + D^{{a\# {({q\text{-}1})}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q\text{-}1})}},2,1} + D^{{a\# {({q\text{-}1})}},2,2} + D^{{a\# {({q\text{-}1})}},2,3} + D^{{a\# {({q\text{-}1})}},2,4}} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q\text{-}1})}},3,1} + D^{{a\# {({q\text{-}1})}},3,2} + D^{{a\# {({q\text{-}1})}},3,3} + D^{{a\# {({q\text{-}1})}},3,4}} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 429}\text{-}\left( {q\text{-}1} \right)} \right) \end{matrix}$

Taking the explanations provided in Embodiments 1 and 6 into consideration, high error-correction capability is achievable when the following condition is satisfied.

<Condition 20-6>

a_(#0, 1, 1)%q = a_(#1, 1, 1)%q = a_(#2, 1, 1)%q = a_(#3, 1, 1)%q = … = a_(#g, 1, 1)%q = … = a_(#(q − 2), 1, 1)%q = a_(#(q − 1), 1, 1)%q = v_(1, 1)(where  v_(1, 1)  is  a  fixed  value) a_(#0, 1, 2)%q = a_(#1, 1, 2)%q = a_(#2, 1, 2)%q = a_(#3, 1, 2)%q = … = a_(#g, 1, 2)%q = … = a_(#(q − 2), 1, 2)%q = a_(#(q − 1), 1, 2)%q = v_(1, 2)(where  v_(1, 2)  is  a  fixed  value) a_(#0, 1, 3)%q = a_(#1, 1, 3)%q = a_(#2, 1, 3)%q = a_(#3, 1, 3)%q = … = a_(#g, 1, 3)%q = … = a_(#(q − 2), 1, 3)%q = a_(#(q − 1), 1, 3)%q = v_(1, 3)(where  v_(1, 3)  is  a  fixed  value) a_(#0, 1, 4)%q = a_(#1, 1, 4)%q = a_(#2, 1, 4)%q = a_(#3, 1, 4)%q = … = a_(#g, 1, 4)%q = … = a_(#(q − 2), 1, 4)%q = a_(#(q − 1), 1, 4)%q = v_(1, 4)(where  v_(1, 4)  is  a  fixed  value) a_(#0, 2, 1)%q = a_(#1, 2, 1)%q = a_(#2, 2, 1)%q = a_(#3, 2, 1)%q = … = a_(#g, 2, 1)%q = … = a_(#(q − 2), 2, 1)%q = a_(#(q − 1), 2, 1)%q = v_(2, 1)(where  v_(2, 1)  is  a  fixed  value) a_(#0, 2, 2)%q = a_(#1, 2, 2)%q = a_(#2, 2, 2)%q = a_(#3, 2, 2)%q = … = a_(#g, 2, 2)%q = … = a_(#(q − 2), 2, 2)%q = a_(#(q − 1), 2, 2)%q = v_(2, 2)(where  v_(2, 2)  is  a  fixed  value) a_(#0, 2, 3)%q = a_(#1, 2, 3)%q = a_(#2, 2, 3)%q = a_(#3, 2, 3)%q = … = a_(#g, 2, 3)%q = … = a_(#(q − 2), 2, 3)%q = a_(#(q − 1), 2, 3)%q = v_(2, 3)(where  v_(2, 3)  is  a  fixed  value) a_(#0, 2, 4)%q = a_(#1, 2, 4)%q = a_(#2, 2, 4)%q = a_(#3, 2, 4)%q = … = a_(#g, 2, 4)%q = … = a_(#(q − 2), 2, 4)%q = a_(#(q − 1), 2, 4)%q = v_(2, 4)(where  v_(2, 4)  is  a  fixed  value) a_(#0, 3, 1)%q = a_(#1, 3, 1)%q = a_(#2, 3, 1)%q = a_(#3, 3, 1)%q = … = a_(#g, 3, 1)%q = … = a_(#(q − 2), 3, 1)%q = a_(#(q − 1), 3, 1)%q = v_(3, 1)(where  v_(3, 1)  is  a  fixed  value) a_(#0, 3, 2)%q = a_(#1, 3, 2)%q = a_(#2, 3, 2)%q = a_(#3, 3, 2)%q = … = a_(#g, 3, 2)%q = … = a_(#(q − 2), 3, 2)%q = a_(#(q − 1), 3, 2)%q = v_(3, 2)(where  v_(3, 2)  is  a  fixed  value) a_(#0, 3, 3)%q = a_(#1, 3, 3)%q = a_(#2, 3, 3)%q = a_(#3, 3, 3)%q = … = a_(#g, 3, 3)%q = … = a_(#(q − 2), 3, 3)%q = a_(#(q − 1), 3, 3)%q = v_(3, 3)(where  v_(3, 3)  is  a  fixed  value) a_(#0, 3, 4)%q = a_(#1, 3, 4)%q = a_(#2, 3, 4)%q = a_(#3, 3, 4)%q = … = a_(#g, 3, 4)%q = … = a_(#(q − 2), 3, 4)%q = a_(#(q − 1), 3, 4)%q = v_(3, 4)(where  v_(3, 4)  is  a  fixed  value)

In the above condition, % means a modulo, and thus α%q represents a remainder after dividing α by q. Condition 20-6 is also expressible as follows.

a _(#k,1,1)%q=v _(1,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,1): fixed value)  <Condition 20-6′>

(k is an integer greater than or equal to zero and less than or equal to q−1, and _(a#k,1,1)%q=v_(1,1) (where v_(1,1) is a fixed value) holds for all k.)

a _(#k,1,2)%q=v _(1,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,2): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,2)%q=v_(1,2) (where v_(1,2) is a fixed value) holds for all k.)

a _(#k,1,3)%q=v _(1,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,3): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,3)%q=v_(1,3) (where v_(1,3) is a fixed value) holds for all k.)

a _(#k,1,4)%q=v _(1,4) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,4): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,4)%q=v_(1,4) (where v_(1,4) is a fixed value) holds for all k.)

a _(#k,2,1)%q=v _(2,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,1): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,1)%q=v_(2,1) (where v_(2,1) is a fixed value) holds for all k.)

a _(#k,2,2)%q=v _(2,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,2): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,2)%q=v_(2,2) (where v_(2,2) is a fixed value) holds for all k.)

a _(#k,2,3)%q=v _(2,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,3): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,3)%q=v_(2,3) (where v_(2,3) is a fixed value) holds for all k.)

a _(#k,2,4)%q=v _(2,4) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,4): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,4)%q=v_(2,4) (where v_(2,4) is a fixed value) holds for all k.)

a _(#k,3,1)%q=v _(3,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,1): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3,1)%q=v_(3,1) (where v_(3,1) is a fixed value) holds for all k.)

a _(#k,3,2)%q=v _(3,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,2): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3,2)%q=v_(3,2) (where v_(3,2) is a fixed value) holds for all k.)

a _(#k,3,3)%q=v _(3,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,3): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3,3)%q=v_(3,3) (where v_(3,3) is a fixed value) holds for all k.)

a _(#k,3,4)%q=v _(3,4) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,4): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3,4)%q=v_(3,4) (where v_(3,4) is a fixed value) holds for all k.)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

<Condition 20-7>

v_(1, 1) ≠ v_(1, 2), v_(1, 1) ≠ v_(1, 3), v_(1, 1) ≠ v_(1, 4), v_(1, 2) ≠ v_(1, 3), v_(1, 2) ≠ v_(1, 4), and  v_(1, 3) ≠ v_(1, 4) v_(2, 1) ≠ v_(2, 2), v_(2, 1) ≠ v_(2, 3), v_(2, 1) ≠ v_(2, 4), v_(2, 2) ≠ v_(2, 3), v_(2, 2) ≠ v_(2, 4), and  v_(2, 3) ≠ v_(2, 4) v_(3, 1) ≠ v_(3, 2), v_(3, 1) ≠ v_(3, 3), v_(3, 1) ≠ v_(3, 4), v_(3, 2) ≠ v_(3, 3), v_(3, 2) ≠ v_(3, 4), and  v_(3, 3) ≠ v_(3, 4)

To satisfy Condition 20-7, the time-varying period q is required to be equal to or greater than four. (This is derived from the number of terms of X₁(D) through X₃(D) in the parity check polynomial.)

High error-correction capability is achievable when the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ satisfies the above-mentioned conditions. High error-correction capability is also achievable when r₁, r₂, r₃, and r4 are each greater than three. The following describes this case. Since r₁, r₂, and r₃ are each set to be equal to or greater than five, and the column weight is equal for all columns of the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, and the partial matrix pertaining to the information X₃, r1=r₂=r₃=r holds. The parity check polynomial satisfying zero in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q is therefore provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 430} \right\rbrack} & \; \\ {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}{{zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,r}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 0}},3,1} + D^{{a{\# 0}},3,2} + \ldots + D^{{a{\# 0}},3,r}} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 430}\text{-}0} \right) \\ {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}{{first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,r}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 1}},3,1} + D^{{a{\# 1}},3,2} + \ldots + D^{{a{\# 1}},3,r}} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 430}\text{-}1} \right) \\ {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}{{second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,r}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 2}},3,1} + D^{{a{\# 2}},3,2} + \ldots + D^{{a{\# 2}},3,r}} \right){X_{3}(D)}} + {P(D)}} = 0}\vdots} & \left( {{{Math}.\mspace{14mu} 430}\text{-}2} \right) \\ {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}{{gth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,r}} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,r}} \right){X_{3}(D)}} + {P(D)}} = 0}\vdots} & \left( {{{Math}.\mspace{14mu} 430}\text{-}g} \right) \\ {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\left( {q\text{-}2} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q\text{-}2})}},1,1} + D^{{a\# {({q\text{-}2})}},1,2} + \ldots + D^{{a\# {({q\text{-}2})}},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q\text{-}2})}},2,1} + D^{{a\# {({q\text{-}2})}},2,2} + \ldots + D^{{a\# {({q\text{-}2})}},2,r}} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q\text{-}2})}},3,1} + D^{{a\# {({q\text{-}2})}},3,2} + \ldots + D^{{a\# {({q\text{-}2})}},3,r}} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 430}\text{-}\left( {q\text{-}2} \right)} \right) \\ {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\left( {q\text{-}1} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q\text{-}1})}},1,1} + D^{{a\# {({q\text{-}1})}},1,2} + \ldots + D^{{a\# {({q\text{-}1})}},1,r}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q\text{-}1})}},2,1} + D^{{a\# {({q\text{-}1})}},2,2} + \ldots + D^{{a\# {({q\text{-}1})}},2,r}} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q\text{-}1})}},3,1} + D^{{a\# {({q\text{-}1})}},3,2} + \ldots + D^{{a\# {({q\text{-}1})}},3,r}} \right){X_{3}(D)}} + {P(D)}} = 0}} & \left( {{{Math}.\mspace{14mu} 430}\text{-}\left( {q\text{-}1} \right)} \right) \end{matrix}$

Taking the explanations provided in Embodiments 1 and 6 into consideration, high error-correction capability is achievable when the following condition is satisfied.

<Condition 20-8>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1) %  q = … = a_(#g, 1, 1)%  q = … = a_(#(q − 2), 1, 1)%  q = a_(#(q − 1), 1, 1)%  q = v_(1, 1)  (where  v_(1, 1)  is  a  fixed  value) a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)  %q = … = a_(#g, 1, 2)%  q = … = a_(#(q − 2), 1, 2)%  q = a_(#(q − 1), 1, 2)%  q = v_(1, 2)  (where  v_(1, 2)  is  a  fixed  value) a_(#0, 1, 3)%  q = a_(#1, 1, 3)%  q = a_(#2, 1, 3)%  q = a_(#3, 1, 3) %  q = … = a_(#g, 1, 3)%  q = … = a_(#(q − 2), 1, 3)%  q = a_(#(q − 1), 1, 3)%  q = v_(1, 3)  (where  v_(1, 3)  is  a  fixed  value)       ⋮ a_(#0, 1, r − 1)%  q = a_(#1, 1, r − 1)%  q = a_(#2, 1, r − 1)%  q = a_(#3, 1, r − 1) %  q = … = a_(#g, 1, r − 1)%  q = … = a_(#(q − 2), 1, r − 1)%  q = a_(#(q − 1), 1, r − 1)%  q = v_(1, r − 1)  (where  v_(1, r − 1)  is  a  fixed  value) a_(#0, 1, r)%  q = a_(#1, 1, r)%  q = a_(#2, 1, r)%  q = a_(#3, 1, r) %  q = … = a_(#g, 1, r)%  q = … = a_(#(q − 2), 1, r)%  q = a_(#(q − 1), 1, r)%  q = v_(1, r)  (where  v_(1, r)  is  a  fixed  value) a_(#0, 2, 1)%  q = a_(#1, 2, 1)%  q = a_(#2, 2, 1)%  q = a_(#3, 2, 1) %  q = … = a_(#g, 2, 1)%  q = … = a_(#(q − 2), 2, 1)%  q = a_(#(q − 1), 2, 1)%  q = v_(2, 1)  (where  v_(2, 1)  is  a  fixed  value) a_(#0, 2, 2)%  q = a_(#1, 2, 2)%  q = a_(#2, 2, 2)%  q = a_(#3, 2, 2) %  q = … = a_(#g, 2, 2)%  q = … = a_(#(q − 2), 2, 2)%  q = a_(#(q − 1), 2, 2)%  q = v_(2, 2)  (where  v_(2, 2)  is  a  fixed  value) a_(#0, 2, 3)%  q = a_(#1, 2, 3)%  q = a_(#2, 2, 3)%  q = a_(#3, 2, 3) %  q = … = a_(#g, 2, 3)%  q = … = a_(#(q − 2), 2, 3)%  q = a_(#(q − 1), 2, 3)%  q = v_(2, 3)  (where  v_(2, 3)  is  a  fixed  value)      ⋮ a_(#0, 2, r − 1)%  q = a_(#1, 2, r − 1)%  q = a_(#2, 2, r − 1)%  q = a_(#3, 2, r − 1) %  q = … = a_(#g, 2, r − 1)%  q = … = a_(#(q − 2), 2.r − 1)%  q = a_(#(q − 1), 2, r − 1)%  q = v_(2, r − 1)  (where  v_(2, r − 1)  is  a  fixed  value) a_(#0, 2, r)%  q = a_(#1, 2, r)%  q = a_(#2, 2, r)%  q = a_(#3, 2, r) %  q = … = a_(#g, 2, r)%  q = … = a_(#(q − 2), 2, r)%  q = a_(#(q − 1), 2, r)%  q = v_(2, r)  (where  v_(2, r)  is  a  fixed  value) a_(#0, 3, 1)%  q = a_(#1, 3, 1)%  q = a_(#2, 3, 1)%  q = a_(#3, 3, 1) %  q = … = a_(#g, 3, 1)%  q = … = a_(#(q − 2), 3, 1)%  q = a_(#(q − 1), 3, 1)%  q = v_(3, 1)  (where  v_(3, 1)  is  a  fixed  value) a_(#0, 3, 2)%  q = a_(#1, 3, 2)%  q = a_(#2, 3, 2)%  q = a_(#3, 3, 2) %  q = … = a_(#g, 3, 2)%  q = … = a_(#(q − 2), 3, 2)%  q = a_(#(q − 1), 3, 2)%  q = v_(3, 2)  (where  v_(3, 2)  is  a  fixed  value) a_(#0, 3, 3)%  q = a_(#1, 3, 3)%  q = a_(#2, 3, 3)%  q = a_(#3, 3, 3) %  q = … = a_(#g, 3, 3)%  q = … = a_(#(q − 2), 3, 3)%  q = a_(#(q − 1), 3, 3)%  q = v_(3, 3)  (where  v_(3, 3)  is  a  fixed  value)   ⋮ a_(#0, 3, r − 1)%  q = a_(#1, 3, r − 1)%  q = a_(#2, 3, r − 1)%  q = a_(#3, 3, r − 1) %  q = … = a_(#g, 3, r − 1)%  q = … = a_(#(q − 2), 3, r − 1)%  q = a_(#(q − 1), 3, r − 1)%  q = v_(3, r − 1)  (where  v_(3, r − 1)  is  a  fixed  value) a_(#0, 3, r)%  q = a_(#1, 3, r)%  q = a_(#2, 3, r)%  q = a_(#3, 3, r) %  q = … = a_(#g, 3, r)%  q = … = a_(#(q − 2), 3, r)%  q = a_(#(q − 1), 3, r)%  q = v_(3, r)  (where  v_(3, r)  is  a  fixed  value)

In the above condition, % means a modulo, and thus α%q represents a remainder after dividing α by q. Condition 20-8 is also expressible as follows. Here, j is an integer greater than or equal to one and less than or equal to r.

a _(#k,1,j)%q=v _(1,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,j): fixed value)  <Condition 20-8′>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,j)%q=v₁₁ (where v₁ j is a fixed value) holds for all k.)

a _(#k,2,j)%q=v _(2,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,j): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,j)%q=v₂ (where v₂ is a fixed value) holds for all k.)

a _(#k,3,j)%q=v _(3,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,j): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3)j %q=v₃ j (where v₃ j is a fixed value) holds for all k.)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

<Condition 20-9>

i is an integer greater than or equal to one and less than or equal to r, and j is an integer greater than or equal to one and less than or equal to r, and v_(s,i)≠v_(s,j) holds for all i and j, where i≠j

Here, s is an integer greater than or equal to one and less than or equal to three. To satisfy Condition 20-9, the time-varying period q is required to be equal to or greater than r. (This is derived from the number of terms of X₁(D) through X₃(D) in the parity check polynomial.)

High error-correction capability is achievable when the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ satisfies the above-mentioned conditions. Next, a code generation method is described for concatenate code, where the tail-biting scheme is used to introduce feedforward LDPC convolutional codes based on a parity check polynomial having a coding rate of ¾ to an interleaver and perform concatenation with an accumulator and there are a plurality of values of the respective column weights of the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, and the partial matrix pertaining to the information X₃. As described above, in the feedforward periodic LDPC convolutional code based on the parity check polynomial having the time-varying period q, which is used in a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code based on a parity check polynomial using the tail-biting scheme of a coding rate of ¾, the gth (g=0, 1, . . . , q−1) parity check polynomial (see Math. 128) satisfying zero is represented as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 431} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + {D^{{a\# g},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + {D^{{a\# g},2,}r_{2}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + {D^{{a\# g},3,}r_{3}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{11mu} 431} \right) \end{matrix}$

In Math. 431, a_(#g,p,q) (p=1, 2, 3; q=1, 2, . . . , r_(p)) is a natural number. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p), y≠z, a_(#g,p,y)≠a_(#g,p,z) holds. Then, high error-correction capability is achievable when r₁, r₂, and r₃ are each set to be equal to or greater than three. Next, conditions are described for achieving high error-correction capability in Math. 431 when r₁, r₂, and r₃ are each set to be equal to or greater than three. When r₁, r₂, and r₃ are each set to be equal to or greater than three, the parity check polynomial satisfying zero in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q is provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 432} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\mspace{20mu} {{zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 0}},3,1} + D^{{a{\# 0}},3,2} + \ldots + D^{{a{\# 0}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 432}\text{-}0} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 1}},3,1} + D^{{a{\# 1}},3,2} + \ldots + D^{{a{\# 1}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 432}\text{-}1} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 2}},3,1} + D^{{a{\# 2}},3,2} + \ldots + D^{{a{\# 2}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}\mspace{140mu}} & \left( {{{Math}.\mspace{14mu} 432}\text{-}2} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{gth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}} & \left( {{{Math}.\mspace{14mu} 432}\text{-}g} \right) \\ {\mspace{79mu} {{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 2} \right)}{th}\mspace{14mu} {\quad{{{{zero}\text{:}\; \left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + D^{{a\# {({q - 2})}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + D^{{a\# {({q - 2})}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 2})}},3,1} + D^{{a\# {({q - 2})}},3,2} + \ldots + D^{{a\# {({q - 2})}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}}}} & \left( {{{Math}.\mspace{14mu} 432}\text{-}\left( {q - 2} \right)} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 1} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + D^{{a\# {({q - 1})}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + D^{{a\# {({q - 1})}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 1})}},3,1} + D^{{a\# {({q - 1})}},3,2} + \ldots + D^{{a\# {({q - 1})}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 432}\text{-}\left( {q - 1} \right)} \right) \end{matrix}$

In this case, high error-correction capability is achievable for the partial matrix pertaining to the information X₁ when the following condition is taken into consideration in order to have a minimum column weight of three. For column a of the parity check matrix, a vector extracted from column a has elements such that the number of ones therein is the column weight of column α.

<Condition 20-10-1>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1) %  q = … = a_(#g, 1, 1)%  q = … = a_(#(q − 2), 1, 1)%  q = a_(#(q − 1), 1, 1)%  q = v_(1, 1)  (where  v_(1, 1)  is  a  fixed  value) a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)  %q = … = a_(#g, 1, 2)%  q = … = a_(#(q − 2), 1, 2)%  q = a_(#(q − 1), 1, 2)%  q = v_(1, 2)  (where  v_(1, 2)  is  a  fixed  value)

Similarly, high error-correction capability is achievable for the partial matrix pertaining to the information X₂ when the following condition is taken into consideration in order to have a minimum column weight of three.

<Condition 20-10-2>

a_(#0, 2, 1)%  q = a_(#1, 2, 1)%  q = a_(#2, 2, 1)%  q = a_(#3, 2, 1) %  q = … = a_(#g, 2, 1)%  q = … = a_(#(q − 2), 2, 1)%  q = a_(#(q − 1), 2, 1)%  q = v_(2, 1)  (where  v_(2, 1)  is  a  fixed  value) a_(#0, 2, 2)%  q = a_(#1, 2, 2)%  q = a_(#2, 2, 2)%  q = a_(#3, 2, 2) %  q = … = a_(#g, 2, 2)%  q = … = a_(#(q − 2), 2, 2)%  q = a_(#(q − 1), 2, 2)%  q = v_(2, 2)  (where  v_(2, 2)  is  a  fixed  value)

Similarly, high error-correction capability is achievable for the partial matrix pertaining to the information X₃ when the following condition is taken into consideration in order to have a minimum column weight of three.

<Condition 20-10-3>

a_(#0, 3, 1)%  q = a_(#1, 3, 1)%  q = a_(#2, 3, 1)%  q = a_(#3, 3, 1) %  q = … = a_(#g, 3, 1)%  q = … = a_(#(q − 2), 3, 1)%  q = a_(#(q − 1), 3, 1)%  q = v_(3, 1)  (where  v_(3, 1)  is  a  fixed  value) a_(#0, 3, 2)%  q = a_(#1, 3, 2)%  q = a_(#2, 3, 2)%  q = a_(#3, 3, 2) %  q = … = a_(#g, 3, 2)%  q = … = a_(#(q − 2), 3, 2)%  q = a_(#(q − 1), 3, 2)%  q = v_(3, 2)  (where  v_(3, 2)  is  a  fixed  value)

In the above condition, % means a modulo, and thus α%q represents a remainder after dividing α by q. Condition 20-10-1, Condition 20-10-2, and Condition 20-10-3 are also expressible as follows. Here, j is one or two.

a _(#k,1,j)%q=v _(1,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,j): fixed value)  <Condition 20-10′-1>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,j)%q=v_(1,j) (where v₁ j is a fixed value) holds for all k.)

a _(#k,2,j)%q=v _(2,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,j): fixed value)  <Condition 20-10′-2>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,j)%q=v_(2,j) (where v_(2,j) is a fixed value) holds for all k.)

a _(#k,3,j)%q=v _(3,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,j): fixed value)  <Condition 20-10′-3>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3)j %q=v₃ j (where v₃ is a fixed value) holds for all k.)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

v _(1,1)≠0, and v _(1,2)≠0

and

v _(1,1) ≠v _(1,2)  <Condition 20-11-1>

v _(2,1)≠0, and v _(2,2)≠0

and

v _(2,1) ≠v _(2,2)  <Condition 20-11-2>

v _(3,1)≠0, and v _(3,2)≠0

and

v _(3,1) ≠v _(3,2)  <Condition 20-11-1>

Given that the partial matrix pertaining to the information X₁, the partial matrix pertaining to information X₂, and the partial matrix pertaining to information X₃ have to be irregular, the following condition applies.

a _(#i,1,v)%q=a _(#j,1,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 20-12-1>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,1,v)%q=a_(#j,1,v)%q holds for all conforming i and j) This is Condition #Xa-1.

Also, v is an integer greater than or equal to three and less than or equal to r₁, although Condition #Xa-1 does not hold for all v.

a _(#i,2,v)%q=a _(#j,2,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 20-12-2>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,2,v)%q=a_(#j,2,v)%q holds for all conforming i and j) This is Condition #Xa-2.

Also, v is an integer greater than or equal to three and less than or equal to r₂, although Condition #Xa-2 does not hold for all v.

a _(#i,3,v)%q=a _(#j,3,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 20-12-3>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,3,v)%q=a_(#j,3,v)%q holds for all conforming i and j) This is Condition #Xa-3.

Also, v is an integer greater than or equal to three and less than or equal to r₃, although Condition #Xa-3 does not hold for all v. Condition 20-12-1, Condition 20-12-2, and Condition 20-12-3 are also expressible as follows.

a _(#i,1,v)%q≠a _(#j,1,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 20-12′-1>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and some i and j exist that satisfy a_(#i,1,v)%q≠a_(#j,1,v)%q) This is Condition #Ya-1. Also, v is an integer greater than or equal to three and less than or equal to r₁, and Condition #Ya-1 holds for all v.

a _(#i,2,v)%q≠a _(#j,2,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 20-12′-2>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, if j, and some i and j exist that satisfy a_(#j,2,v)%q a_(#j,2,v)%q) This is Condition #Ya-2.

Also, v is an integer greater than or equal to three and less than or equal to r₂, and Condition #Ya-2 holds for all v.

a _(#i,3,v)%q≠a _(#j,3,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 20-12′-3>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and some i and j exist that satisfy a_(#i,3,v)%q a_(#j,3,v)%q) This is Condition #Ya-3.

Also, v is an integer greater than or equal to three and less than or equal to r₃, and Condition #Ya-3 holds for all v. In the above-mentioned manner, the minimum column weight is set to three in each of the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, and the partial matrix pertaining to the information X₃. By the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ¾ satisfying the above-mentioned conditions, the irregular LDPC code is generated and high error-correction capability is achievable. The concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ¾ for achieving high error-correction capability is generated based on the above-mentioned conditions. In order to readily obtain the above-mentioned concatenated code for achieving high error-correction capability, r₁=r₂=r₃=r (r is equal to or greater than three) should hold true. Next, in the feedforward periodic LDPC convolutional code based on the parity check polynomial having the time-varying period q, which is used in a concatenated code contatenating an accumulator, via an interleaver, with the feedforward LDPC convolutional code based on a parity check polynomial using the tail-biting scheme of a coding rate of ¾, the gth (g=0, 1, . . . , q−1) parity check polynomial (see Math. 128) satisfying zero is represented as follows.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 433} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + {D^{{a\# g},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + {D^{{a\# g},2,}r_{2}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + {D^{{a\# g},3,}r_{3}} + 1} \right){X_{3}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{11mu} 433} \right) \end{matrix}$

In Math. 433, a_(#g,p,q) (p=1, 2, 3; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p) and y≠z, a_(#g,p,y)≠a_(#g,p,z) holds. Next, conditions are described for achieving high error-correction capability in Math. 433 when r₁, r₂, and r₃ are each set to be equal to or greater than four. When r₁, r₂, and r₃ are each set to be equal to or greater than four, the parity check polynomial satisfying zero in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q is provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 434} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 0}},3,1} + D^{{a{\# 0}},3,2} + \ldots + D^{{a{\# 0}},3,_{r_{3}}}} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 434}\text{-}0} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 1}},3,1} + D^{{a{\# 1}},3,2} + \ldots + D^{{a{\# 1}},3,_{r_{3}}}} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 434}\text{-}1} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 2}},3,1} + D^{{a{\# 2}},3,2} + \ldots + D^{{a{\# 2}},3,_{r_{3}}}} \right){X_{3}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}\mspace{140mu}} & \left( {{{Math}.\mspace{14mu} 434}\text{-}2} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{gth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,_{r_{3}}}} \right){X_{3}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}} & \left( {{{Math}.\mspace{14mu} 434}\text{-}g} \right) \\ {\mspace{79mu} {{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 2} \right)}{th}\mspace{14mu} {\quad{{{{zero}\text{:}\; \left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + D^{{a\# {({q - 2})}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + D^{{a\# {({q - 2})}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 2})}},3,1} + D^{{a\# {({q - 2})}},3,2} + \ldots + D^{{a\# {({q - 2})}},3,_{r_{3}}}} \right){X_{3}(D)}} + {P(D)}} = 0}}}} & \left( {{{Math}.\mspace{14mu} 434}\text{-}\left( {q - 2} \right)} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 1} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + D^{{a\# {({q - 1})}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + D^{{a\# {({q - 1})}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 1})}},3,1} + D^{{a\# {({q - 1})}},3,2} + \ldots + D^{{a\# {({q - 1})}},3,_{r_{3}}}} \right){X_{3}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 434}\text{-}\left( {q - 1} \right)} \right) \end{matrix}$

In this case, high error-correction capability is achievable for the partial matrix pertaining to the information X₁ when the following condition is taken into consideration in order to have a minimum column weight of three.

<Condition 20-13-1>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1) %  q = … = a_(#g, 1, 1)%  q = … = a_(#(q − 2), 1, 1)%  q = a_(#(q − 1), 1, 1)%  q = v_(1, 1)  (where  v_(1, 1)  is  a  fixed  value) a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)  %q = … = a_(#g, 1, 2)%  q = … = a_(#(q − 2), 1, 2)%  q = a_(#(q − 1), 1, 2)%  q = v_(1, 2)  (where  v_(1, 2)  is  a  fixed  value) a_(#0, 1, 3)%  q = a_(#1, 1, 3)%  q = a_(#2, 1, 3)%  q = a_(#3, 1, 3) %  q = … = a_(#g, 1, 3)%  q = … = a_(#(q − 2), 1, 3)%  q = a_(#(q − 1), 1, 3)%  q = v_(1, 3)  (where  v_(1, 3)  is  a  fixed  value)

Similarly, high error-correction capability is achievable for the partial matrix pertaining to the information X₂ when the following condition is taken into consideration in order to have a minimum column weight of three.

<Condition 20-13-2>

a_(#0, 2, 1)%  q = a_(#1, 2, 1)%  q = a_(#2, 2, 1)%  q = a_(#3, 2, 1) %  q = … = a_(#g, 2, 1)%  q = … = a_(#(q − 2), 2, 1)%  q = a_(#(q − 1), 2, 1)%  q = v_(2, 1)  (where  v_(2, 1)  is  a  fixed  value) a_(#0, 2, 2)%  q = a_(#1, 2, 2)%  q = a_(#2, 2, 2)%  q = a_(#3, 2, 2) %  q = … = a_(#g, 2, 2)%  q = … = a_(#(q − 2), 2, 2)%  q = a_(#(q − 1), 2, 2)%  q = v_(2, 2)  (where  v_(2, 2)  is  a  fixed  value) a_(#0, 2, 3)%  q = a_(#1, 2, 3)%  q = a_(#2, 2, 3)%  q = a_(#3, 2, 3) %  q = … = a_(#g, 2, 3)%  q = … = a_(#(q − 2), 2, 3)%  q = a_(#(q − 1), 2, 3)%  q = v_(2, 3)  (where  v_(2, 3)  is  a  fixed  value)

Similarly, high error-correction capability is achievable for the partial matrix pertaining to the information X₃ when the following condition is taken into consideration in order to have a minimum column weight of three.

<Condition 20-13-3>

a_(#0, 3, 1)%  q = a_(#1, 3, 1)%  q = a_(#2, 3, 1)%  q = a_(#3, 3, 1) %  q = … = a_(#g, 3, 1)%  q = … = a_(#(q − 2), 3, 1)%  q = a_(#(q − 1), 3, 1)%  q = v_(3, 1)  (where  v_(3, 1)  is  a  fixed  value) a_(#0, 3, 2)%  q = a_(#1, 3, 2)%  q = a_(#2, 3, 2)%  q = a_(#3, 3, 2) %  q = … = a_(#g, 3, 2)%  q = … = a_(#(q − 2), 3, 2)%  q = a_(#(q − 1), 3, 2)%  q = v_(3, 2)  (where  v_(3, 2)  is  a  fixed  value) a_(#0, 3, 3)%  q = a_(#1, 3, 3)%  q = a_(#2, 3, 3)%  q = a_(#3, 3, 3) %  q = … = a_(#g, 3, 3)%  q = … = a_(#(q − 2), 3, 3)%  q = a_(#(q − 1), 3, 3)%  q = v_(3, 3)  (where  v_(3, 3)  is  a  fixed  value)

In the above condition, % means a modulo, and thus α%q represents a remainder after dividing α by q. Condition 20-13-1, Condition 20-13-2, and Condition 20-13-3 are also expressible as follows. Here, j is one, two, or three.

a _(#k,1,j)%q=v _(1,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,j): fixed value)  <Condition 20-13′-1>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,j)%q=v_(1,j) (where v₁₁ is a fixed value) holds for all k.)

a _(#k,2,j)%q=v _(2,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,j): fixed value)  <Condition 20-13′-2>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,j)%q=v_(2,j) (where v₂ is a fixed value) holds for all k.)

a _(#k,3,j)%q=v _(3,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,j): fixed value)  <Condition 20-13′-3>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3)j %q=v_(3,j) (where v_(3,j) is a fixed value) holds for all k.)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

v _(1,1) ≠v _(1,2) , v _(1,1) ≠v _(1,3), and v _(1,2) ≠v _(1,3)  <Condition 20-14-1>

v _(2,1) ≠v _(2,2) , v _(2,1) ≠v _(2,3), and v _(2,2) ≠v _(2,3)  <Condition 20-14-2>

v _(3,1) ≠v _(3,2) , v _(3,1) ≠v _(3,3), and v _(3,2) ≠v _(3,3)  <Condition 20-14-3>

Given that the partial matrix pertaining to the information X₁, the partial matrix pertaining to information X₂, and the partial matrix pertaining to information X₃ have to be irregular, the following condition applies.

a _(#i,1,v)%q=a _(#j,1,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 20-15-1>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,1,v)%q=a_(#j,1,v)%q holds for all conforming i and j) This is Condition #Xb-1.

Also, v is an integer greater than or equal to four and less than or equal to r₁, although Condition #Xb-1 does not hold for all v.

a _(#i,2,v)%q=a _(#j,2,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 20-15-2>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,2,v)%q=a_(#j,2,v)%q holds for all conforming i and j) This is Condition #Xb-2.

Also, v is an integer greater than or equal to four and less than or equal to r₂, although Condition #Xb-2 does not hold for all v.

a _(#i,3,v)%q=a _(#j,3,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 20-15-3>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,3,v)%q a_(#j,3,v)%q holds for all conforming i and j) This is Condition #Xb-3.

Also, v is an integer greater than or equal to four and less than or equal to r₃, although Condition #Xb-3 does not hold for all v. Condition 20-15-1, Condition 20-15-2, and Condition 20-15-3 are also expressible as follows.

a _(#i,1,v)%q≠a _(#j,1,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 20-15′-1>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and some i and j exist that satisfy a_(#1,1,v)%q #α_(#j,1,v)%q) This is Condition #Yb-1. Also, v is an integer greater than or equal to four and less than or equal to r₁, and Condition #Yb-1 holds for all v.

a _(#i,2,v)%q≠a _(#j,2,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 20-15′-2>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and some i and j exist that satisfy a_(#i,2,v)%q a_(#j,2,v)%q) This is Condition #Yb-2. Also, v is an integer greater than or equal to four and less than or equal to r₂, and Condition #Yb-2 holds for all v.

a _(#i,3,v)%q≠a _(#j,3,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 20-15′-3>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and some i and j exist that satisfy a_(#i,3,v)%q a_(#j,3,v)%q) This is Condition #Yb-3.

Also, v is an integer greater than or equal to four and less than or equal to r₃, and Condition #Yb-3 holds for all v. In the above-mentioned manner, the minimum column weight is set to three in each of the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, and the partial matrix pertaining to the information X₃. By the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ¾ satisfying the above-mentioned conditions, the irregular LDPC code is generated and high error-correction capability is achievable. The concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ¾ for achieving high error-correction capability is generated based on the above-mentioned conditions. In order to readily obtain the above-mentioned concatenated code for achieving high error-correction capability, r₁=r₂=r₃=r (r is equal to or greater than four) should hold true.

As for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ¾ described in the present embodiment, a code generated using any of the code generation methods described in the present embodiment is decoded by performing belief propagation decoding, such as the BP decoding, sum-product decoding, min-sum decoding, offset BP decoding, Normalized BP decoding, Shuffled BP decoding, and Layered BP decoding in which scheduling is performed as disclosed in Non-Patent Literature 4 to 6, based on the parity check matrix generated using the parity check matrix generation method described in the present embodiment as described with use of FIG. 108. Therefore, high-speed decoding is realized and high error-correction capability is achieved.

As described above, by implementing the generation method, the encoder, the configuration of the parity check matrix, the decoding method and the like for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ¾, the decoding method using the belief propagation algorithm for realizing high-speed decoding is applied to achieve high error-correction capability. The requirements described in the present embodiment are just examples, and the error correction code for achieving high error-correction capability is generated in other methods.

The following describes examples of a time period (time-varying period) for the feedforward LDPC convolutional code based on the parity check polynomial in the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ¾, based on Embodiment 6:

(1) The time-varying period q is a prime number.

(2) The time-varying period q is an odd number and the number of divisors of q is small.

(3) The time-varying period q is assumed to be α×β,

where α and β are odd numbers other than one and are prime numbers.

(4) The time-varying period q is assumed to be α^(n),

where α is an odd number other than one and is a prime number, and n is an integer equal to or greater than two.

(5) The time-varying period q is assumed to be α×β×γ,

where α, β, and γ are odd numbers other than one and are prime numbers.

(6) The time-varying period q is assumed to be α×β×γ×δ,

where, α, β, γ, and δ are odd numbers other than one and are prime numbers. Here, when the above (2) is taken into consideration, the following other examples are considered:

(7) The time-varying period q is assumed to be A^(u)×B^(v), where, A and B are odd numbers other than one and are prime numbers, A≠B, and u and v are integers equal to or greater than one.

(8) The time-varying period q is assumed to be A^(u)×B^(v)×C^(w), where, A, B, and C are odd numbers other than one and are prime numbers, A≠B, A≠C, and B≠C, and u, v, and w are integers equal to or greater than one.

(9) The time-varying period q is assumed to be A^(u)×B^(v)×C^(w)×D^(X),

where, A, B, C, and D are odd numbers other than one and are prime numbers, A≠B, A≠C, A≠D, B≠C, B≠D, and C≠D, and u, v, w, and x are integers equal to or greater than one. As described above, however, since the effect described in Embodiment 6 is achieved as the time-varying period q grows large, it is not always true that a code having high error-correction capability is not obtained when the time-varying period m is an even number. For example, conditions as shown below may be satisfied when the time-varying period m is an even number:

(10) The time-varying period m is assumed to be 2^(g)×K,

where, K is a prime number, and g is an integer equal to or greater than one.

(11) The time-varying period m is assumed to be 2⁹×L,

where, L is an odd number and the number of divisors of L is small, and g is an integer equal to or greater than one.

(12) The time-varying period m is assumed to be 2^(g)×α×β,

where, α and β are odd numbers other than one and are prime numbers, and g is an integer equal to or greater than one.

(13) The time-varying period m is assumed to be 2^(g)×α^(n),

where, α is an odd number other than one and is a prime number, n is an integer equal to or greater than two, and g is an integer equal to or greater than one.

(14) The time-varying period m is assumed to be 2^(g)×α×β×γ,

where, α, β, and γ are odd numbers other than one and are prime numbers, and g is an integer equal to or greater than one.

(15) The time-varying period m is assumed to be 2^(g)×α×β×γ×δ,

where, α, β, γ, and δ are odd numbers other than one and are prime numbers, and g is an integer equal to or greater than one.

(16) The time-varying period m is assumed to be 2^(g)×A^(u)×B^(v),

where, A and B are odd numbers other than one and are prime numbers, A #B, u and v are integers equal to or greater than one, and g is an integer equal to or greater than one.

(17) The time-varying period m is assumed to be 2^(g)×A^(u)×B^(v)×C^(w),

where, A, B, and C are odd numbers other than one and are prime numbers, A≠B, A≠C, and B≠C, u, v, and w are integers equal to or greater than one, and g is an integer equal to or greater than one. (18) The time-varying period m is assumed to be 2^(g)×A^(u)×B^(v)×C^(w)×D^(x),

where, A, B, C, and D are odd numbers other than one and are prime numbers, A≠B, A≠C, A≠D, B≠C, B≠D, and C≠D, u, v, w, and x are integers equal to or greater than one, and g is an integer equal to or greater than one.

However, when the time-varying period q is an odd number not satisfying any of the above-mentioned conditions (1) to (9) or an even number not satisfying any of the above-mentioned conditions (10) to (18), high error-correction capability is achievable.

For example, in the DVB standard disclosed in Non-Patent Literature 30, 16200 bits and 64800 bits are each defined as the block length of the LDPC code. Considering such a block size, 15, 25, 27, 45, 75, 81,135, and 225 are considered as examples of an appropriate value for the time-varying period.

The several important conditions are presented in the above-mentioned description of the code generation method for the parity check matrix for the concatenated code contatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on a parity check polynomial using the tail-biting scheme of a coding rate of ¾, when there are a plurality of values for column weights of the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, and the partial matrix pertaining to the information X₃. When the parity check polynomial satisfying zero in the feedforward LDPC convolutional code based on the parity check polynomial in the above-mentioned concatenated code is shown by Math. 431, an appropriate code can be obtained by adding the following conditions to Condition 20-10-1, Condition 20-10-2, and Condition 20-10-3, Condition 20-10′-1, Condition 20-10′-2, and Condition 20-10′-3, and Condition 20-11-1, Condition 20-11-2, and Condition 20-11-3, with reference to Embodiment 6.

<Condition 20-16>

[Math. 435]

v _(i,j) ≠v _(s,t)  (Math. 435)

Here, i is an integer greater than or equal to one and less than or equal to three, j is one or two, s is an integer greater than or equal to one and less than or equal to three, and t is one or two, and Math. 435 holds for all i, j, s, and t other than the values satisfying (i, j)=(s, t).

<Condition 20-17>

i is an integer greater than or equal to one and less than or equal to three, j is one or two, and v_(i,j) is not a divisor of the time-varying period q or is one for all values of i and j.

Also, the several important conditions are presented in the above-mentioned description of the code generation method for the parity check matrix for the concatenated code contatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on a parity check polynomial using the tail-biting scheme of a coding rate of ¾, when the column weight is equal for all columns of the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, and the partial matrix pertaining to the information X₃. When the parity check polynomial satisfying zero in the feedforward LDPC convolutional code based on the parity check polynomial in the above-mentioned concatenated code is shown by Math. 427-0 to Math. 427-(q−1), an appropriate code can be obtained by adding the following conditions to Condition 20-4, Condition 20-4′, and Condition 20-5, with reference to Embodiment 6.

<Condition 20-18>

[Math. 436]

v _(i,j) ≠v _(s,t)  (Math. 436)

Here, i is an integer greater than or equal to one and less than or equal to three, j is an integer greater than or equal to one and less than or equal to r, s is an integer greater than or equal to one and less than or equal to three, and t is an integer greater than or equal to one and less than or equal to r, and Math. 436 holds for all i, j, s, and t other than the values satisfying (i, j)=(s, t).

<Condition 20-19>

i is an integer greater than or equal to one and less than or equal to three, j is an integer greater than or equal to one and less than or equal to r, and v_(i,j) is not a divisor of the time-varying period q or is one for all values of i and j.

Embodiment 21

In Embodiment 18, description has been made of a concatenated code concatenating an accumulator, via an interleaver, with a feedforward LDPC convolutional code based on a parity check polynomial using a tail-biting scheme having a coding rate of (n−1)/n. In the present embodiment, the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ⅘ is described as an example of Embodiment 18.

In Embodiment 18, when n=5, it is possible to generate the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ⅘. Here, firstly described a code generation method for the parity check matrix for the concatenated code contatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of ⅘, when the column weight is equal for all columns of the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, and the partial matrix pertaining to the information X₃, and the partial matrix pertaining to the information X₄. Then, described a code generation method is described for concatenate code, where the tail-biting scheme is used to introduce feedforward LDPC convolutional codes based on a parity check polynomial having a coding rate of ⅘ to an interleaver and perform concatenation with an accumulator and there are a plurality of values of the respective column weights of the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, the partial matrix pertaining to the information X₃, and the partial matrix pertaining to the information X₄.

The following describes a code generation method for the parity check matrix for the concatenated code contatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code that is based on a parity check polynomial using the tail-biting scheme of a coding rate of ⅘, when the column weight is equal for all columns of the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, and the partial matrix pertaining to the information X₃, and the partial matrix pertaining to the information X₄. In the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q used in the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅘, the gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero (see Math. 128) is represented as shown below

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 437} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + {D^{{a\# g},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + {D^{{a\# g},2,}r_{2}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + {D^{{a\# g},3,}r_{3}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,2} + \ldots + {D^{{a\# g},4,}r_{4}} + 1} \right){X_{4}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{11mu} 437} \right) \end{matrix}$

In Math. 437, a_(#g,p,q) (p=1, 2, 3, 4; q=1, 2, . . . , r_(p)) is a natural number. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p) and y≠z, a_(#g,p,y)≠a_(#g,p,z) holds. Then, high error-correction capability is achievable when r₁, r₂, r₃ and r₄ are each set to be equal to or greaer than three.

Note that the following function is defined for a polynomial part of a parity check polynomial satisfying zero of Math. 437.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 438} \right\rbrack} & \; \\ {{F_{f}(D)} = {{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + {D^{{a\# g},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + {D^{{a\# g},2,}r_{2}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + {D^{{a\# g},3,}r_{3}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,2} + \ldots + {D^{{a\# g},4,}r_{4}} + 1} \right){X_{4}(D)}} + {P(D)}}} & \left( {{Math}.\mspace{11mu} 438} \right) \end{matrix}$

Here, the following two methods can be used to form the time-varying period q.

Method 1:

[Math. 439]

F _(i)(D)≠F _(j)(D)∀i∀j i,j=0,1,2, . . . ,q−2,q−1;i≠j  (Math. 439)

(where i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and F_(i)(D)≠F_(j)(D) for all conforming i and j)

Method 2:

[Math. 440]

F _(i)(D)≠F _(j)(D)  (Math. 422)

where i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and some i and j exist that satisfy Math. 440.

[Math. 441]

F _(i)(D)=F _(j)(D)  (Math. 441)

where i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and some i and j exist that satisfy Math. 441, thus resulting in a time-varying period q. Note that the methods 1 and 2 for forming the time-varying q can be implemented in a similar manner even in the case where a polynomial part of a parity check polynomial satisfying zero of Math. 445 is defined as function Γ_(g)(D).

Next, described is an example of a setting of a_(#g,p,q) in Math. 437, particularly in a case where r₁, r₂, r₃, and r₄ are each set to three.

When r₁, r₂, r₃, and r₄ are each set to three, the parity check polynomial satisfying zero in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q is provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 442} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + D^{{a{\# 0}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},1,2} + D^{{a{\# 0}},2,3} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 0}},3,1} + D^{{a{\# 0}},3,2} + D^{{a{\# 0}},3,3} + 1} \right){X_{3}(D)}} + {\left( {D^{{a{\# 0}},4,1} + D^{{a{\# 0}},4,2} + D^{{a{\# 0}},4,3} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 442}\text{-}0} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + D^{{a{\# 1}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},1,2} + D^{{a{\# 1}},2,3} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 1}},3,1} + D^{{a{\# 1}},3,2} + D^{{a{\# 1}},3,3} + 1} \right){X_{3}(D)}} + {\left( {D^{{a{\# 1}},4,1} + D^{{a{\# 1}},4,2} + D^{{a{\# 1}},4,3} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 442}\text{-}1} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + D^{{a{\# 2}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},1,2} + D^{{a{\# 2}},2,3} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 2}},3,1} + D^{{a{\# 2}},3,2} + D^{{a{\# 2}},3,3} + 1} \right){X_{3}(D)}} + {\left( {D^{{a{\# 2}},4,1} + D^{{a{\# 2}},4,2} + D^{{a{\# 2}},4,3} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}\mspace{140mu}} & \left( {{{Math}.\mspace{14mu} 442}\text{-}2} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{gth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + D^{{a\# g},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},1,2} + D^{{a\# g},2,3} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + D^{{a\# g},3,3} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,2} + D^{{a\# g},4,3} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}} & \left( {{{Math}.\mspace{14mu} 442}\text{-}g} \right) \\ {\mspace{79mu} {{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 2} \right)}{th}\mspace{14mu} {\quad{{{{zero}\text{:}\; \left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + D^{{a\# {({q - 2})}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + D^{{a\# {({q - 2})}},2,3} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 2})}},3,1} + D^{{a\# {({q - 2})}},3,2} + D^{{a\# {({q - 2})}},3,3} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# {({q - 2})}},4,1} + D^{{a\# {({q - 2})}},4,2} + D^{{a\# {({q - 2})}},4,3} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}}}} & \left( {{{Math}.\mspace{14mu} 442}\text{-}\left( {q - 2} \right)} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 1} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + D^{{a\# {({q - 1})}},1,3} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + D^{{a\# {({q - 1})}},2,3} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 1})}},3,1} + D^{{a\# {({q - 1})}},3,2} + D^{{a\# {({q - 1})}},3,3} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# {({q - 1})}},4,1} + D^{{a\# {({q - 1})}},4,2} + D^{{a\# {({q - 1})}},4,3} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 442}\text{-}\left( {q - 1} \right)} \right) \end{matrix}$

Taking the explanations provided in Embodiments 1 and 6 into consideration, high error-correction capability is achievable when the following condition is satisfied.

<Condition 21-2>

a_(#0, 1, 1)%  q = a_(#1, 1, 1)%  q = a_(#2, 1, 1)%  q = a_(#3, 1, 1) %  q = … = a_(#g, 1, 1)%  q = … = a_(#(q − 2), 1, 1)%  q = a_(#(q − 1), 1, 1)%  q = v_(1, 1)  (where  v_(1, 1)  is  a  fixed  value) a_(#0, 1, 2)%  q = a_(#1, 1, 2)%  q = a_(#2, 1, 2)%  q = a_(#3, 1, 2)  %q = … = a_(#g, 1, 2)%  q = … = a_(#(q − 2), 1, 2)%  q = a_(#(q − 1), 1, 2)%  q = v_(1, 2)  (where  v_(1, 2)  is  a  fixed  value) a_(#0, 1, 3)%  q = a_(#1, 1, 3)%  q = a_(#2, 1, 3)%  q = a_(#3, 1, 3) %  q = … = a_(#g, 1, 3)%  q = … = a_(#(q − 2), 1, 3)%  q = a_(#(q − 1), 1, 3)%  q = v_(1, 3)  (where  v_(1, 3)  is  a  fixed  value) a_(#0, 2, 1)%  q = a_(#1, 2, 1)%  q = a_(#2, 2, 1)%  q = a_(#3, 2, 1) %  q = … = a_(#g, 2, 1)%  q = … = a_(#(q − 2), 2, 1)%  q = a_(#(q − 1), 2, 1)%  q = v_(2, 1)  (where  v_(2, 1)  is  a  fixed  value) a_(#0, 2, 2)%  q = a_(#1, 2, 2)%  q = a_(#2, 2, 2)%  q = a_(#3, 2, 2) %  q = … = a_(#g, 2, 2)%  q = … = a_(#(q − 2), 2, 2)%  q = a_(#(q − 1), 2, 2)%  q = v_(2, 2)  (where  v_(2, 2)  is  a  fixed  value) a_(#0, 2, 3)%  q = a_(#1, 2, 3)%  q = a_(#2, 2, 3)%  q = a_(#3, 2, 3) %  q = … = a_(#g, 2, 3)%  q = … = a_(#(q − 2), 2, 3)%  q = a_(#(q − 1), 2, 3)%  q = v_(2, 3)  (where  v_(2, 3)  is  a  fixed  value) a_(#0, 3, 1)%  q = a_(#1, 3, 1)%  q = a_(#2, 3, 1)%  q = a_(#3, 3, 1) %  q = … = a_(#g, 3, 1)%  q = … = a_(#(q − 2), 3, 1)%  q = a_(#(q − 1), 3, 1)%  q = v_(3, 1)  (where  v_(3, 1)  is  a  fixed  value) a_(#0, 3, 2)%  q = a_(#1, 3, 2)%  q = a_(#2, 3, 2)%  q = a_(#3, 3, 2) %  q = … = a_(#g, 3, 2)%  q = … = a_(#(q − 2), 3, 2)%  q = a_(#(q − 1), 3, 2)%  q = v_(3, 2)  (where  v_(3, 2)  is  a  fixed  value) a_(#0, 3, 3)%  q = a_(#1, 3, 3)%  q = a_(#2, 3, 3)%  q = a_(#3, 3, 3) %  q = … = a_(#g, 3, 3)%  q = … = a_(#(q − 2), 3, 3)%  q = a_(#(q − 1), 3, 3)%  q = v_(3, 3)  (where  v_(3, 3)  is  a  fixed  value) a_(#0, 4, 1)%  q = a_(#1, 4, 1)%  q = a_(#2, 4, 1)%  q = a_(#3, 4, 1) %  q = … = a_(#g, 4, 1)%  q = … = a_(#(q − 2), 4, 1)%  q = a_(#(q − 1), 4, 1)%  q = v_(4, 1)  (where  v_(4, 1)  is  a  fixed  value) a_(#0, 4, 2)%  q = a_(#1, 4, 2)%  q = a_(#2, 4, 2)%  q = a_(#3, 4, 2) %  q = … = a_(#g, 4, 2)%  q = … = a_(#(q − 2), 4, 2)%  q = a_(#(q − 1), 4, 2)%  q = v_(4, 2)  (where  v_(4, 2)  is  a  fixed  value) a_(#0, 4, 3)%  q = a_(#1, 4, 3)%  q = a_(#2, 4, 3)%  q = a_(#3, 4, 3) %  q = … = a_(#g, 4, 3)%  q = … = a_(#(q − 2), 4, 3)%  q = a_(#(q − 1), 4, 3)%  q = v_(4, 3)  (where  v_(4, 3)  is  a  fixed  value)

In the above condition, % means a modulo, and thus α%q represents a remainder after dividing α by q. Condition 21-2 is also expressible as follows.

a _(#k,1,1)%q=v _(1,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,1): fixed value)  <Condition 20-10′-1>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,1)%q=v_(1,1) (where v_(1,1) is a fixed value) holds for all k.)

a _(#k,1,2)%q=v _(1,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,2): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,2)%q=v_(1,2) (where v_(1,2) is a fixed value) holds for all k.)

a _(#k,1,3)%q=v _(1,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,3): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,3)%q=v_(1,3) (where v_(1,3) is a fixed value) holds for all k.)

a _(#k,2,1)%q=v _(2,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,1): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,1)%q=v_(2,1) (where v_(2,1) is a fixed value) holds for all k.)

a _(#k,2,2)%q=v _(2,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,2): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,2)%q=v_(2,2) (where v_(2,2) is a fixed value) holds for all k.)

a _(#k,2,3)%q=v _(2,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,3): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,3)%q=v_(2,3) (where v_(2,3) is a fixed value) holds for all k.)

a _(#k,3,1)%q=v _(3,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,1): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3,1)%q=v_(3,1) (where v_(3,1) is a fixed value) holds for all k.)

a _(#k,3,2)%q=v _(3,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,2): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3,2)%q=v_(3,2) (where v_(3,2) is a fixed value) holds for all k.)

a _(#k,3,3)%q=v _(3,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,3): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3,3)%q=v_(3,3) (where v_(3,3) is a fixed value) holds for all k.)

a _(#k,4,1)%q=v _(4,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(4,1): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,4,1)%q=v_(4,1) (where v_(4,1) is a fixed value) holds for all k.)

a _(#k,4,2)%q=v _(4,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(4,2): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,4,2)%q=v_(4,2) (where v_(4,2) is a fixed value) holds for all k.)

a _(#k,4,3)%q=v _(4,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(4,3): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,4,3)%q=v_(4,3) (where v_(4,3) is a fixed value) holds for all k.)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

<Condition 21-3>

v_(1, 1) ≠ v_(1, 2), v_(1, 1) ≠ v_(1, 3), v_(1, 2) ≠ v_(1, 3), v_(1, 1) ≠ 0, v_(1, 2) ≠ 0, and  v_(1, 3) ≠ 0 v_(2, 1) ≠ v_(2, 2), v_(2, 1) ≠ v_(2, 3), v_(2, 2) ≠ v_(2, 3), v_(2, 1) ≠ 0, v_(2, 2) ≠ 0, and  v_(2, 3) ≠ 0 v_(3, 1) ≠ v_(3, 2), v_(3, 1) ≠ v_(3, 3), v_(3, 2) ≠ v_(1, 3), v_(3, 1) ≠ 0, v_(3, 2) ≠ 0, and  v_(3, 3) ≠ 0 v_(4, 1) ≠ v_(4, 2), v_(4, 1) ≠ v_(4, 3), v_(4, 2) ≠ v_(4, 3), v_(4, 1) ≠ 0, v_(4, 2) ≠ 0, and  v_(4, 3) ≠ 0

To satisfy Condition 21-3, the time-varying period q is required to be equal to or greater than four. (This is derived from the number of terms of X₁(D) through X₄(D) in the parity check polynomial.)

High error-correction capability is also achievable when r₁, r₂, r₃, and r₄ are each greater than three. The following describes this case. When r₁, r₁, r₂, r₃, and r₄ are each set to be equal to or greater than four, the parity check polynomial satisfying zero in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q is provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{11mu} 443} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + {D^{{a\# g},1,}r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + {D^{{a\# g},2,}r_{2}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + {D^{{a\# g},3,}r_{3}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,2} + \ldots + {D^{{a\# g},4,}r_{4}} + 1} \right){X_{4}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{11mu} 443} \right) \end{matrix}$

In Math. 443, a_(#g,p,q) (p=1, 2, 3, 4; q=1, 2, . . . , r_(p)) is a natural number. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p) and y≠z, a_(#g,p,y)≠a_(#g,p,z) holds. Since r₁, r₂, r₃, and r₄ are each set to be equal to or greater than four, and the column weight is equal for all columns of the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, the partial matrix pertaining to the information X₃, and the partial matrix pertaining to the information X₄, r₁=r₂=r₃=r₄=r is satisfied. The parity check polynomial satisfying zero in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q is therefore provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 444} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,_{r}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,_{r}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 0}},3,1} + D^{{a{\# 0}},3,2} + \ldots + D^{{a{\# 0}},3,_{r}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a{\# 0}},4,1} + D^{{a{\# 0}},4,2} + \ldots + D^{{a{\# 0}},4,_{r}} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 444}\text{-}0} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,_{r}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,_{r}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 1}},3,1} + D^{{a{\# 1}},3,2} + \ldots + D^{{a{\# 1}},3,_{r}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a{\# 1}},4,1} + D^{{a{\# 1}},4,2} + \ldots + D^{{a{\# 1}},4,_{r}} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 444}\text{-}1} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,_{r}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,_{r}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 2}},3,1} + D^{{a{\# 2}},3,2} + \ldots + D^{{a{\# 2}},3,_{r}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a{\# 2}},4,1} + D^{{a{\# 2}},4,2} + \ldots + D^{{a{\# 2}},4,_{r}} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}\mspace{140mu}} & \left( {{{Math}.\mspace{14mu} 444}\text{-}2} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{gth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,_{r}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,_{r}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,2} + \ldots + D^{{a\# g},4,_{r}} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}} & \left( {{{Math}.\mspace{14mu} 444}\text{-}g} \right) \\ {\mspace{79mu} {{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 2} \right)}{th}\mspace{14mu} {\quad{{{{zero}\text{:}\; \left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + D^{{a\# {({q - 2})}},1,_{r}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + D^{{a\# {({q - 2})}},2,_{r}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 2})}},3,1} + D^{{a\# {({q - 2})}},3,2} + \ldots + D^{{a\# {({q - 2})}},3,_{r}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# {({q - 2})}},4,1} + D^{{a\# {({q - 2})}},4,2} + \ldots + D^{{a\# {({q - 2})}},4,_{r}} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}}}} & \left( {{{Math}.\mspace{14mu} 444}\text{-}\left( {q - 2} \right)} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 1} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + D^{{a\# {({q - 1})}},1,_{r}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + D^{{a\# {({q - 1})}},2,_{r}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 1})}},3,1} + D^{{a\# {({q - 1})}},3,2} + \ldots + D^{{a\# {({q - 1})}},3,_{r}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# {({q - 1})}},4,1} + D^{{a\# {({q - 1})}},4,2} + \ldots + D^{{a\# {({q - 1})}},4,_{r}} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 444}\text{-}\left( {q - 1} \right)} \right) \end{matrix}$

Taking the explanations provided in Embodiments 1 and 6 into consideration, high error-correction capability is achievable when the following condition is satisfied.

<Condition 21-4>

$\begin{matrix} \begin{matrix} {{a_{{\# 0},1,1}\% \mspace{14mu} q} = {a_{{\# 1},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,1}\% \mspace{14mu} q}} \\ {= {v_{1,1}\left( {{where}\mspace{14mu} v_{1,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},1,2}\% \mspace{14mu} q} = {a_{{\# 1},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,2}\% \mspace{14mu} q}} \\ {= {v_{1,2}\left( {{where}\mspace{14mu} v_{1,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},1,3}\% \mspace{14mu} q} = {a_{{\# 1},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,3}\% \mspace{14mu} q}} \\ {= {v_{1,3}\left( {{where}\mspace{14mu} v_{1,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \vdots & \; \\ \begin{matrix} {{a_{{\# 0},1,{r - 1}}\% \mspace{14mu} q} = {a_{{\# 1},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {v_{1,{r - 1}}\left( {{where}\mspace{14mu} v_{1,{r - 1}}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},1,r}\% \mspace{14mu} q} = {a_{{\# 1},1,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,r}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,r}\% \mspace{14mu} q}} \\ {= {v_{1,r}\left( {{where}\mspace{14mu} v_{1,r}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},2,1}\% \mspace{14mu} q} = {a_{{\# 1},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,1}\% \mspace{14mu} q}} \\ {= {v_{2,1}\left( {{where}\mspace{14mu} v_{2,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},2,2}\% \mspace{14mu} q} = {a_{{\# 1},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,2}\% \mspace{14mu} q}} \\ {= {v_{2,2}\left( {{where}\mspace{14mu} v_{2,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},2,3}\% \mspace{14mu} q} = {a_{{\# 1},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,3}\% \mspace{14mu} q}} \\ {= {v_{2,3}\left( {{where}\mspace{14mu} v_{2,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \vdots & \; \\ \begin{matrix} {{a_{{\# 0},2,{r - 1}}\% \mspace{14mu} q} = {a_{{\# 1},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {v_{2,{r - 1}}\left( {{where}\mspace{14mu} v_{2,{r - 1}}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},2,r}\% \mspace{14mu} q} = {a_{{\# 1},2,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,r}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,r}\% \mspace{14mu} q}} \\ {= {v_{2,r}\left( {{where}\mspace{14mu} v_{2,r}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},3,1}\% \mspace{14mu} q} = {a_{{\# 1},3,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,1}\% \mspace{14mu} q}} \\ {= {v_{3,1}\left( {{where}\mspace{14mu} v_{3,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},3,2}\% \mspace{14mu} q} = {a_{{\# 1},3,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,2}\% \mspace{14mu} q}} \\ {= {v_{3,2}\left( {{where}\mspace{14mu} v_{3,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},3,3}\% \mspace{14mu} q} = {a_{{\# 1},3,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,3}\% \mspace{14mu} q}} \\ {= {v_{3,3}\left( {{where}\mspace{14mu} v_{3,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \vdots & \; \\ \begin{matrix} {{a_{{\# 0},3,{r - 1}}\% \mspace{14mu} q} = {a_{{\# 1},3,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,{r - 1}}\% \mspace{14mu} q}} \\ {= {v_{3,{r - 1}}\left( {{where}\mspace{14mu} v_{3,{r - 1}}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},3,r}\% \mspace{14mu} q} = {a_{{\# 1},3,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,r}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,r}\% \mspace{14mu} q}} \\ {= {v_{3,r}\left( {{where}\mspace{14mu} v_{3,r}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},4,1}\% \mspace{14mu} q} = {a_{{\# 1},4,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,1}\% \mspace{14mu} q}} \\ {= {v_{4,1}\left( {{where}\mspace{14mu} v_{4,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},4,2}\% \mspace{14mu} q} = {a_{{\# 1},4,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,2}\% \mspace{14mu} q}} \\ {= {v_{4,2}\left( {{where}\mspace{14mu} v_{4,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},4,3}\% \mspace{14mu} q} = {a_{{\# 1},4,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,3}\% \mspace{14mu} q}} \\ {= {v_{4,3}\left( {{where}\mspace{14mu} v_{4,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \vdots & \; \\ \begin{matrix} {{a_{{\# 0},4,{r - 1}}\% \mspace{14mu} q} = {a_{{\# 1},4,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,{r - 1}}\% \mspace{14mu} q}} \\ {= {v_{4,{r - 1}}\left( {{where}\mspace{14mu} v_{4,{r - 1}}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},4,r}\% \mspace{14mu} q} = {a_{{\# 1},4,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,r}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,r}\% \mspace{14mu} q}} \\ {= {v_{4,r}\left( {{where}\mspace{14mu} v_{4,r}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \end{matrix}$

In the above condition, % means a modulo, and thus α%q represents a remainder after dividing α by q. Condition 21-4 is also expressible as follows. Here, j is an integer greater than or equal to one and less than or equal to r.

a _(#k,1,j)%q=v _(1,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,j): fixed value)  <Condition 21-4′>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,j)%q=v₁ j (where v_(1,j) is a fixed value) holds for all k.)

a _(#k,2,j)%q=v _(2,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,j): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,j)%q=v_(2,j) (where v_(2,j) is a fixed value) holds for all k.)

a _(#k,3,j)%q=v _(3,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,j): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3)j %q=v₃ j (where v₃ j is a fixed value) holds for all k.)

a _(#k,4,j)%q=v _(4,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(4,j): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,4)j %q=v_(4,j) (where v₄ j is a fixed value) holds for all k.)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

<Condition 21-5>

i is an integer greater than or equal to one and less than or equal to r, and

v_(s),i #0 holds for all i and

i is an integer greater than or equal to one and less than or equal to r, and j

i is an integer greater than or equal to one and equal to or smaller than r, and v_(s,i)≠v_(s,j) holds for all i and j, where i≠j

Here, s is an integer greater than or equal to one and less than or equal to four. To satisfy Condition 21-5, the time-varying period q is required to be equal to or greater than r+1. (This is derived from the number of terms of X₁(D) through X₄(D) in the parity check polynomial.)

High error-correction capability is achievable when the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅘ satisfies the above-mentioned conditions. Considered next is a case where, in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q used in the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ⅘, the gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 445} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,r_{2}}} \right)X_{2}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,r_{3}}} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,1} + D^{{a\# g},4,2} + \ldots + D^{{a\# g},4,r_{4}}} \right){X_{4}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 445} \right) \end{matrix}$

In Math. 445, a_(#g,p,q) (p=1, 2, 3, 4; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p) and y≠z, a_(#g,p,y)≠a_(#g,p,z) holds. Described is an example of a setting of a_(#g,p,q) in Math. 445, particularly in a case where r₁, r₂, r₃, and r₄ are each set to four. When r₁, r₂, r₃, and r₄ are each set to four, the parity check polynomial satisfying zero in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q is provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 446} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + D^{{a{\# 0}},1,3} + D^{{a{\# 0}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + D^{{a{\# 0}},2,3} + D^{{a{\# 0}},2,4}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 0}},3,1} + D^{{a{\# 0}},3,2} + D^{{a{\# 0}},3,3} + D^{{a{\# 0}},3,4}} \right){X_{3}(D)}} + {\left( {D^{{a{\# 0}},4,1} + D^{{a{\# 0}},4,2} + D^{{a{\# 0}},4,3} + D^{{a{\# 0}},4,4}} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 446}\text{-}0} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + D^{{a{\# 1}},1,3} + D^{{a{\# 1}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + D^{{a{\# 1}},2,3} + D^{{a{\# 1}},2,4}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 1}},3,1} + D^{{a{\# 1}},3,2} + D^{{a{\# 1}},3,3} + D^{{a{\# 1}},3,4}} \right){X_{3}(D)}} + {\left( {D^{{a{\# 1}},4,1} + D^{{a{\# 1}},4,2} + D^{{a{\# 1}},4,3} + D^{{a{\# 1}},4,4}} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 446}\text{-}1} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + D^{{a{\# 2}},1,3} + D^{{a{\# 2}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + D^{{a{\# 2}},2,3} + D^{{a{\# 2}},2,4}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 2}},3,1} + D^{{a{\# 2}},3,2} + D^{{a{\# 2}},3,3} + D^{{a{\# 2}},3,4}} \right){X_{3}(D)}} + {\left( {D^{{a{\# 2}},4,1} + D^{{a{\# 2}},4,2} + D^{{a{\# 2}},4,3} + D^{{a{\# 2}},4,4}} \right){X_{4}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}\mspace{140mu}} & \left( {{{Math}.\mspace{14mu} 446}\text{-}2} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{gth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + D^{{a\# g},1,3} + D^{{a\# g},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + D^{{a\# g},2,3} + D^{{a\# g},2,4}} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + D^{{a\# g},3,3} + D^{{a\# g},3,4}} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,2} + D^{{a\# g},4,3} + D^{{a\# g},4,4}} \right){X_{4}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}} & \left( {{{Math}.\mspace{14mu} 446}\text{-}g} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 2} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + D^{{a\# {({q - 2})}},1,3} + D^{{a\# {({q - 2})}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},1,2} + D^{{a\# {({q - 2})}},2,3} + D^{{a\# {({q - 2})}},2,4}} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 2})}},3,1} + D^{{a\# {({q - 2})}},3,2} + D^{{a\# {({q - 2})}},3,3} + D^{{a\# {({q - 2})}},3,4}} \right){X_{3}(D)}} + {\left( {D^{{a\# {({q - 2})}},4,1} + D^{{a\# {({q - 2})}},4,2} + D^{{a\# {({q - 2})}},4,3} + D^{{a\# {({q - 2})}},4,4}} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 446}\text{-}\left( {q - 2} \right)} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 1} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + D^{{a\# {({q - 1})}},1,3} + D^{{a\# {({q - 1})}},1,4}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + D^{{a\# {({q - 1})}},2,3} + D^{{a\# {({q - 1})}},2,4}} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 1})}},3,1} + D^{{a\# {({q - 1})}},3,2} + D^{{a\# {({q - 1})}},3,3} + D^{{a\# {({q - 1})}},3,4}} \right){X_{3}(D)}} + {\left( {D^{{a\# {({q - 1})}},4,1} + D^{{a\# {({q - 1})}},4,2} + D^{{a\# {({q - 1})}},4,3} + D^{{a\# {({q - 1})}},4,4}} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 446}\text{-}\left( {q - 1} \right)} \right) \end{matrix}$

Taking the explanations provided in Embodiments 1 and 6 into consideration, high error-correction capability is achievable when the following condition is satisfied.

<Condition 21-6>

$\begin{matrix} \begin{matrix} {{a_{{\# 0},1,1}\% \mspace{14mu} q} = {a_{{\# 1},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,1}\% \mspace{14mu} q}} \\ {= {v_{1,1}\left( {{where}\mspace{14mu} v_{1,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},1,2}\% \mspace{14mu} q} = {a_{{\# 1},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,2}\% \mspace{14mu} q}} \\ {= {v_{1,2}\left( {{where}\mspace{14mu} v_{1,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},1,3}\% \mspace{14mu} q} = {a_{{\# 1},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,3}\% \mspace{14mu} q}} \\ {= {v_{1,3}\left( {{where}\mspace{14mu} v_{1,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},1,4}\% \mspace{14mu} q} = {a_{{\# 1},1,4}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,4}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,4}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,4}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,4}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,4}\% \mspace{14mu} q}} \\ {= {v_{1,4}\left( {{where}\mspace{14mu} v_{1,4}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},2,1}\% \mspace{14mu} q} = {a_{{\# 1},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,1}\% \mspace{14mu} q}} \\ {= {v_{2,1}\left( {{where}\mspace{14mu} v_{2,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},2,2}\% \mspace{14mu} q} = {a_{{\# 1},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,2}\% \mspace{14mu} q}} \\ {= {v_{2,2}\left( {{where}\mspace{14mu} v_{2,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},2,3}\% \mspace{14mu} q} = {a_{{\# 1},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,3}\% \mspace{14mu} q}} \\ {= {v_{2,3}\left( {{where}\mspace{14mu} v_{2,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},2,4}\% \mspace{14mu} q} = {a_{{\# 1},2,4}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,4}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,4}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,4}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,4}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,4}\% \mspace{14mu} q}} \\ {= {v_{2,4}\left( {{where}\mspace{14mu} v_{2,4}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},3,1}\% \mspace{14mu} q} = {a_{{\# 1},3,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,1}\% \mspace{14mu} q}} \\ {= {v_{3,1}\left( {{where}\mspace{14mu} v_{3,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},3,2}\% \mspace{14mu} q} = {a_{{\# 1},3,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,2}\% \mspace{14mu} q}} \\ {= {v_{3,2}\left( {{where}\mspace{14mu} v_{3,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},3,3}\% \mspace{14mu} q} = {a_{{\# 1},3,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,3}\% \mspace{14mu} q}} \\ {= {v_{3,3}\left( {{where}\mspace{14mu} v_{3,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},3,4}\% \mspace{14mu} q} = {a_{{\# 1},3,4}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,4}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,4}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,4}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,4}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,4}\% \mspace{14mu} q}} \\ {= {v_{3,4}\left( {{where}\mspace{14mu} v_{3,4}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},4,1}\% \mspace{14mu} q} = {a_{{\# 1},4,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,1}\% \mspace{14mu} q}} \\ {= {v_{4,1}\left( {{where}\mspace{14mu} v_{4,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},4,2}\% \mspace{14mu} q} = {a_{{\# 1},4,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,2}\% \mspace{14mu} q}} \\ {= {v_{4,2}\left( {{where}\mspace{14mu} v_{4,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},4,3}\% \mspace{14mu} q} = {a_{{\# 1},4,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,3}\% \mspace{14mu} q}} \\ {= {v_{4,3}\left( {{where}\mspace{14mu} v_{4,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},4,4}\% \mspace{14mu} q} = {a_{{\# 1},4,4}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,4}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,4}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,4}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,4}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,4}\% \mspace{14mu} q}} \\ {= {v_{4,4}\left( {{where}\mspace{14mu} v_{4,4}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \end{matrix}$

In the above condition, % means a modulo, and thus α%q represents a remainder after dividing α by q. Condition 21-6 is also expressible as follows.

a _(#k,1,1)%q=v _(1,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,1): fixed value)  <Condition 21-6′>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,1)%q=v_(1,1) (where v_(1,1) is a fixed value) holds for all k.)

a _(#k,1,2)%q=v _(1,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,2): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,2)%q=v_(1,2) (where v_(1,2) is a fixed value) holds for all k.)

a _(#k,1,3)%q=v _(1,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,3): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,3)%q=v_(1,3) (where v_(1,3) is a fixed value) holds for all k.)

a _(#k,1,4)%q=v _(1,4) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,4): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,4)%q=v_(1,4) (where v_(1,4) is a fixed value) holds for all k.)

a _(#k,2,1)%q=v _(2,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,1): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,1)%q=v_(2,1) (where v_(2,1) is a fixed value) holds for all k.)

a _(#k,2,2)%q=v _(2,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,2): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,2)%q=v_(2,2) (where v_(2,2) is a fixed value) holds for all k.)

a _(#k,2,3)%q=v _(2,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,3): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,3)%q=v_(2,3) (where v_(2,3) is a fixed value) holds for all k.)

a _(#k,2,4)%q=v _(2,4) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,4): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,4)%q=v_(2,4) (where v_(2,4) is a fixed value) holds for all k.)

a _(#k,3,1)%q=v _(3,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,1): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3,1)%q=v_(3,1) (where v_(3,1) is a fixed value) holds for all k.)

a _(#k,3,2)%q=v _(3,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,2): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3,2)%q=v_(3,2) (where v_(3,2) is a fixed value) holds for all k.)

a _(#k,3,3)%q=v _(3,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,3): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3,3)%q=v_(3,3) (where v_(3,3) is a fixed value) holds for all k.)

a _(#k,3,4)%q=v _(3,4) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,4): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3,4)%q=v_(3,4) (where v_(3,4) is a fixed value) holds for all k.)

a _(#k,4,1)%q=v _(4,1) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(4,1): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,4,1)%q=v_(4,1) (where v_(4,1) is a fixed value) holds for all k.)

a _(#k,4,2)%q=v _(4,2) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(4,2): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,4,2)%q=v_(4,2) (where v_(4,2) is a fixed value) holds for all k.)

a _(#k,4,3)%q=v _(4,3) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(4,3): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,4,3)%q=v_(4,3) (where v_(4,3) is a fixed value) holds for all k.)

a _(#k,4,4)%q=v _(4,4) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(4,4): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,4,4)%q=v_(4,4) (where v_(4,4) is a fixed value) holds for all k.)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

<Condition 21-7>

v_(1, 1) ≠ v_(1, 2), v_(1, 1) ≠ v_(1, 3), v_(1, 1) ≠ v_(1, 4), v_(1, 2) ≠ v_(1, 3), v_(1, 2) ≠ v_(1, 4), and  v_(1, 3) ≠ v_(1, 4) v_(2, 1) ≠ v_(2, 2), v_(2, 1) ≠ v_(2, 3), v_(2, 1) ≠ v_(2, 4), v_(2, 2) ≠ v_(2, 3), v_(2, 2) ≠ v_(2, 4), and  v_(2, 3) ≠ v_(2, 4) v_(3, 1) ≠ v_(3, 2), v_(3, 1) ≠ v_(3, 3), v_(3, 1) ≠ v_(3, 4), v_(3, 2) ≠ v_(3, 3), v_(3, 2) ≠ v_(3, 4), and  v_(3, 3) ≠ v_(3, 4) v_(4, 1) ≠ v_(4, 2), v_(4, 1) ≠ v_(4, 3), v_(4, 1) ≠ v_(4, 4), v_(4, 2) ≠ v_(4, 3), v_(4, 2) ≠ v_(4, 4), and  v_(4, 3) ≠ v_(4, 4)

To satisfy Condition 21-7, the time-varying period q is required to be equal to or greater than four. (This is derived from the number of terms of X₁(D) through X₄(D) in the parity check polynomial.)

High error-correction capability is achievable when the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅘ satisfies the above-mentioned conditions. High error-correction capability is also achievable when r₁, r₂, r₃, and r₄ are each greater than four. The following describes this case. Since r₁, r₂, r₃, and r₄ are each set to be equal to or greater than five, and the column weight is equal for all columns of the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, the partial matrix pertaining to the information X₃, and the partial matrix pertaining to the information X₄, r₁=r₂=r₃=r₄=r is satisfied. The parity check polynomial satisfying zero in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q is therefore provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 447} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}}\text{}\mspace{20mu} {a\mspace{14mu} {zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,_{r}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,_{r}}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 0}},3,1} + D^{{a{\# 0}},3,2} + \ldots + D^{{a{\# 0}},3,_{r}}} \right){X_{3}(D)}} + {\left( {D^{{a{\# 0}},4,1} + D^{{a{\# 0}},4,2} + \ldots + D^{{a{\# 0}},4,_{r}}} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 447}\text{-}0} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,_{r}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,_{r}}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 1}},3,1} + D^{{a{\# 1}},3,2} + \ldots + D^{{a{\# 1}},3,_{r}}} \right){X_{3}(D)}} + {\left( {D^{{a{\# 1}},4,1} + D^{{a{\# 1}},4,2} + \ldots + D^{{a{\# 1}},4,_{r}}} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 447}\text{-}1} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,_{r}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,_{r}}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 2}},3,1} + D^{{a{\# 2}},3,2} + \ldots + D^{{a{\# 2}},3,_{r}}} \right){X_{3}(D)}} + {\left( {D^{{a{\# 2}},4,1} + D^{{a{\# 2}},4,2} + \ldots + D^{{a{\# 2}},4,_{r}}} \right){X_{4}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}\mspace{140mu}} & \left( {{{Math}.\mspace{14mu} 447}\text{-}2} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{gth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,_{r}}} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,_{r}}} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,2} + \ldots + D^{{a\# g},4,_{r}}} \right){X_{4}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}} & \left( {{{Math}.\mspace{14mu} 447}\text{-}g} \right) \\ {\mspace{79mu} {{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 2} \right)}{th}\mspace{14mu} {\quad{{{{zero}\text{:}\; \left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + D^{{a\# {({q - 1})}},1,_{r}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + D^{{a\# {({q - 2})}},2,_{r}}} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 2})}},3,1} + D^{{a\# {({q - 2})}},3,2} + \ldots + D^{{a\# {({q - 2})}},3,_{r}}} \right){X_{3}(D)}} + {\left( {D^{{a\# {({q - 2})}},4,1} + D^{{a\# {({q - 2})}},4,2} + \ldots + D^{{a\# {({q - 2})}},4,_{r}}} \right){X_{4}(D)}} + {P(D)}} = 0}}}} & \left( {{{Math}.\mspace{14mu} 447}\text{-}\left( {q - 2} \right)} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 1} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + D^{{a\# {({q - 1})}},1,_{r}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + D^{{a\# {({q - 1})}},2,_{r}}} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 1})}},3,1} + D^{{a\# {({q - 1})}},3,2} + \ldots + D^{{a\# {({q - 1})}},3,_{r}}} \right){X_{3}(D)}} + {\left( {D^{{a\# {({q - 1})}},4,1} + D^{{a\# {({q - 1})}},4,2} + \ldots + D^{{a\# {({q - 1})}},4,_{r}}} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 447}\text{-}\left( {q - 1} \right)} \right) \end{matrix}$

Taking the explanations provided in Embodiments 1 and 6 into consideration, high error-correction capability is achievable when the following condition is satisfied.

<Condition 21-8>

$\begin{matrix} \begin{matrix} {{a_{{\# 0},1,1}\% \mspace{14mu} q} = {a_{{\# 1},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,1}\% \mspace{14mu} q}} \\ {= {v_{1,1}\left( {{where}\mspace{14mu} v_{1,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},1,2}\% \mspace{14mu} q} = {a_{{\# 1},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,2}\% \mspace{14mu} q}} \\ {= {v_{1,2}\left( {{where}\mspace{14mu} v_{1,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},1,3}\% \mspace{14mu} q} = {a_{{\# 1},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,3}\% \mspace{14mu} q}} \\ {= {v_{1,3}\left( {{where}\mspace{14mu} v_{1,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \vdots & \; \\ \begin{matrix} {{a_{{\# 0},1,{r - 1}}\% \mspace{14mu} q} = {a_{{\# 1},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,{r - 1}}\% \mspace{14mu} q}} \\ {= {v_{1,{r - 1}}\left( {{where}\mspace{14mu} v_{1,{r - 1}}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},1,r}\% \mspace{14mu} q} = {a_{{\# 1},1,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,r}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,r}\% \mspace{14mu} q}} \\ {= {v_{1,r}\left( {{where}\mspace{14mu} v_{1,r}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},2,1}\% \mspace{14mu} q} = {a_{{\# 1},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,1}\% \mspace{14mu} q}} \\ {= {v_{2,1}\left( {{where}\mspace{14mu} v_{2,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},2,2}\% \mspace{14mu} q} = {a_{{\# 1},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,2}\% \mspace{14mu} q}} \\ {= {v_{2,2}\left( {{where}\mspace{14mu} v_{2,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},2,3}\% \mspace{14mu} q} = {a_{{\# 1},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,3}\% \mspace{14mu} q}} \\ {= {v_{2,3}\left( {{where}\mspace{14mu} v_{2,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \vdots & \; \\ \begin{matrix} {{a_{{\# 0},2,{r - 1}}\% \mspace{14mu} q} = {a_{{\# 1},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,{r - 1}}\% \mspace{14mu} q}} \\ {= {v_{2,{r - 1}}\left( {{where}\mspace{14mu} v_{2,{r - 1}}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},2,r}\% \mspace{14mu} q} = {a_{{\# 1},2,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,r}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,r}\% \mspace{14mu} q}} \\ {= {v_{2,r}\left( {{where}\mspace{14mu} v_{2,r}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},3,1}\% \mspace{14mu} q} = {a_{{\# 1},3,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,1}\% \mspace{14mu} q}} \\ {= {v_{3,1}\left( {{where}\mspace{14mu} v_{3,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},3,2}\% \mspace{14mu} q} = {a_{{\# 1},3,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,2}\% \mspace{14mu} q}} \\ {= {v_{3,2}\left( {{where}\mspace{14mu} v_{3,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},3,3}\% \mspace{14mu} q} = {a_{{\# 1},3,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,3}\% \mspace{14mu} q}} \\ {= {v_{3,3}\left( {{where}\mspace{14mu} v_{3,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \vdots & \; \\ \begin{matrix} {{a_{{\# 0},3,{r - 1}}\% \mspace{14mu} q} = {a_{{\# 1},3,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,{r - 1}}\% \mspace{14mu} q}} \\ {= {v_{3,{r - 1}}\left( {{where}\mspace{14mu} v_{3,{r - 1}}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},3,r}\% \mspace{14mu} q} = {a_{{\# 1},3,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,r}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,r}\% \mspace{14mu} q}} \\ {= {v_{3,r}\left( {{where}\mspace{14mu} v_{3,r}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},4,1}\% \mspace{14mu} q} = {a_{{\# 1},4,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,1}\% \mspace{14mu} q}} \\ {= {v_{4,1}\left( {{where}\mspace{14mu} v_{4,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},4,2}\% \mspace{14mu} q} = {a_{{\# 1},4,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,2}\% \mspace{14mu} q}} \\ {= {v_{4,2}\left( {{where}\mspace{14mu} v_{4,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},4,3}\% \mspace{14mu} q} = {a_{{\# 1},4,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,3}\% \mspace{14mu} q}} \\ {= {v_{4,3}\left( {{where}\mspace{14mu} v_{4,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \vdots & \; \\ \begin{matrix} {{a_{{\# 0},4,{r - 1}}\% \mspace{14mu} q} = {a_{{\# 1},4,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,{r - 1}}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,{r - 1}}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,{r - 1}}\% \mspace{14mu} q}} \\ {= {v_{4,{r - 1}}\left( {{where}\mspace{14mu} v_{4,{r - 1}}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},4,r}\% \mspace{14mu} q} = {a_{{\# 1},4,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,r}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,r}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,r}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,r}\% \mspace{14mu} q}} \\ {= {v_{4,r}\left( {{where}\mspace{14mu} v_{4,r}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \end{matrix}$

In the above condition, % means a modulo, and thus α%q represents a remainder after dividing α by q. Condition 21-8 is also expressible as follows. Here, j is an integer greater than or equal to one and less than or equal to r.

a _(#k,1,j)%q=v _(1,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,j): fixed value)  <Condition 21-8′>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,j)%q=v₁ j (where v_(1,j) is a fixed value) holds for all k.)

a _(#k,2,j)%q=v _(2,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,j): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,j)%q=v_(2,j) (where v_(2,j) is a fixed value) holds for all k.)

a _(#k,3,j)%q=v _(3,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,j): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3)j %q=v_(3,j) (where v_(3,j) is a fixed value) holds for all k.)

a _(#k,4,j)%q=v _(4,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(4,j): fixed value)

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,4,j)%q=v₄ j (where v_(4,j) is a fixed value) holds for all k.)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

<Condition 21-9>

i is an integer greater than or equal to one and less than or equal to r, and j is an integer greater than or equal to one and less than or equal to r, and v_(s),i f v_(s) j holds for all i and j, where i≠j.

Here, s is an integer greater than or equal to one and less than or equal to four. To satisfy Condition 21-9, the time-varying period q is required to be equal to or greater than r. (This is derived from the number of terms of X₁(D) through X₄(D) in the parity check polynomial.)

High error-correction capability is achievable when the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅘ satisfies the above-mentioned conditions. Next, a code generation method is described for concatenate code, where the tail-biting scheme is used to introduce feedforward LDPC convolutional codes based on a parity check polynomial having a coding rate of ⅘ to an interleaver and perform concatenation with an accumulator and there are a plurality of values of the respective column weights of the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, the partial matrix pertaining to the information X₃, and the partial matrix pertaining to the information X₄. In the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q used in the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅘, the gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero (see Math. 128) is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 448} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,r_{1}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,r_{2}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,r_{3}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,1} + D^{{a\# g},4,2} + \ldots + D^{{a\# g},4,r_{4}} + 1} \right){X_{4}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 448} \right) \end{matrix}$

In Math. 448, a_(#g,p,q) (p=1, 2, 3, 4; q=1, 2, . . . , r_(p)) is a natural number. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p) and y≠z, a_(#g,p,y)≠a_(#g,p,z) holds. Then, high error-correction capability is achievable when r₁, r₂, r₃ and r₄ are each set to be equal to or greaer than three. Next, conditions are described for achieving high error-correction capability in Math. 448 when r₁, r₂, r₃ and r₄ are each set to be equal to or greater than three. When r₁, r₂, r₃, and r₄ are each set to be equal to or greater than three, the parity check polynomial satisfying zero in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q is provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 449} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 0}},3,1} + D^{{a{\# 0}},3,2} + \ldots + D^{{a{\# 0}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a{\# 0}},4,1} + D^{{a{\# 0}},4,2} + \ldots + D^{{a{\# 0}},4,_{r_{4}}} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 449}\text{-}0} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 1}},3,1} + D^{{a{\# 1}},3,2} + \ldots + D^{{a{\# 1}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a{\# 1}},4,1} + D^{{a{\# 1}},4,2} + \ldots + D^{{a{\# 1}},4,_{r_{4}}} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 449}\text{-}1} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a{\# 2}},3,1} + D^{{a{\# 2}},3,2} + \ldots + D^{{a{\# 2}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a{\# 2}},4,1} + D^{{a{\# 2}},4,2} + \ldots + D^{{a{\# 2}},4,_{r_{4}}} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}\mspace{140mu}} & \left( {{{Math}.\mspace{14mu} 449}\text{-}2} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{gth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,2} + \ldots + D^{{a\# g},4,_{r_{4}}} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}} & \left( {{{Math}.\mspace{14mu} 449}\text{-}g} \right) \\ {\mspace{79mu} {{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 2} \right)}{th}\mspace{14mu} {\quad{{{{zero}\text{:}\; \left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + D^{{a\# {({q - 2})}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + D^{{a\# {({q - 2})}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 2})}},3,1} + D^{{a\# {({q - 2})}},3,2} + \ldots + D^{{a\# {({q - 2})}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# {({q - 2})}},4,1} + D^{{a\# {({q - 2})}},4,2} + \ldots + D^{{a\# {({q - 2})}},4,_{r_{4}}} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}}}} & \left( {{{Math}.\mspace{14mu} 449}\text{-}\left( {q - 2} \right)} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 1} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + D^{{a\# {({q - 1})}},1,_{r_{1}}} + 1} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + D^{{a\# {({q - 1})}},2,_{r_{2}}} + 1} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 1})}},3,1} + D^{{a\# {({q - 1})}},3,2} + \ldots + D^{{a\# {({q - 1})}},3,_{r_{3}}} + 1} \right){X_{3}(D)}} + {\left( {D^{{a\# {({q - 1})}},4,1} + D^{{a\# {({q - 1})}},4,2} + \ldots + D^{{a\# {({q - 1})}},4,_{r_{4}}} + 1} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 449}\text{-}\left( {q - 1} \right)} \right) \end{matrix}$

In this case, high error-correction capability is achievable for the partial matrix pertaining to the information X₁ when the following condition is taken into consideration in order to have a minimum column weight of three. For column a of the parity check matrix, a vector extracted from column a has elements such that the number of ones therein is the column weight of column α.

<Condition 21-10-1>

$\begin{matrix} \begin{matrix} {{a_{{\# 0},1,1}\% \mspace{14mu} q} = {a_{{\# 1},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,1}\% \mspace{14mu} q}} \\ {= {v_{1,1}\left( {{where}\mspace{14mu} v_{1,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},1,2}\% \mspace{14mu} q} = {a_{{\# 1},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,2}\% \mspace{14mu} q}} \\ {= {v_{1,2}\left( {{where}\mspace{14mu} v_{1,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \end{matrix}$

Similarly, high error-correction capability is achievable for the partial matrix pertaining to the information X₂ when the following condition is taken into consideration in order to have a minimum column weight of three.

<Condition 21-10-2>

$\begin{matrix} \begin{matrix} {{a_{{\# 0},2,1}\% \mspace{14mu} q} = {a_{{\# 1},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,1}\% \mspace{14mu} q}} \\ {= {v_{2,1}\left( {{where}\mspace{14mu} v_{2,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \\ \begin{matrix} {{a_{{\# 0},2,2}\% \mspace{14mu} q} = {a_{{\# 1},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,2}\% \mspace{14mu} q}} \\ {= {v_{2,2}\left( {{where}\mspace{14mu} v_{2,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} & \; \end{matrix}$

Similarly, high error-correction capability is achievable for the partial matrix pertaining to the information X₃ when the following condition is taken into consideration in order to have a minimum column weight of three.

<Condition 21-10-3>

$\begin{matrix} \begin{matrix} {{a_{{\# 0},3,1}\% \mspace{14mu} q} = {a_{{\# 1},3,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,1}\% \mspace{14mu} q}} \\ {= {v_{3,1}\left( {{where}\mspace{14mu} v_{3,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \\ \begin{matrix} {{a_{{\# 0},3,2}\% \mspace{14mu} q} = {a_{{\# 1},3,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,2}\% \mspace{14mu} q}} \\ {= {v_{3,2}\left( {{where}\mspace{14mu} v_{3,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \end{matrix}$

Similarly, high error-correction capability is achievable for the partial matrix pertaining to the information X₄ when the following condition is taken into consideration in order to have a minimum column weight of three.

<Condition 21-10-4>

$\begin{matrix} \begin{matrix} {{a_{{\# 0},4,1}\% \mspace{14mu} q} = {a_{{\# 1},4,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,1}\% \mspace{14mu} q}} \\ {= {v_{4,1}\left( {{where}\mspace{14mu} v_{4,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \\ \begin{matrix} {{a_{{\# 0},4,2}\% \mspace{14mu} q} = {a_{{\# 1},4,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,2}\% \mspace{14mu} q}} \\ {= {v_{4,2}\left( {{where}\mspace{14mu} v_{4,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \end{matrix}$

In the above condition, % means a modulo, and thus α%q represents a remainder after dividing α by q. Condition 21-10-1, Condition 21-10-2, Condition 21-10-3, and Condition 21-10-4 are also expressible as follows. Here, j is one or two.

a _(#k,1,j)%q=v _(1,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,j): fixed value)  <Condition 21-10′-1>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,j)%q=v₁ j (where v₁ j is a fixed value) holds for all k.)

a _(#k,2,j)%q=v _(2,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,j): fixed value)  <Condition 21-10′-2>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,j)%q=v_(2,j) (where v_(2,j) is a fixed value) holds for all k.)

a _(#k,3,j)%q=v _(3,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,j): fixed value)  <Condition 21-10′-3>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3)j %q=v₃ j (where v₃ j is a fixed value) holds for all k.)

a _(#k,4,j)%q=v _(4,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(4,j): fixed value)  <Condition 21-10′-4>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,4)j %q=v₄ j (where v₄ is a fixed value) holds for all k.)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

v _(1,1)≠0, and v _(1,2)≠0

and

v _(1,1) ≠v _(1,2)  <Condition 21-11-1>

v _(2,1)≠0, and v _(2,2)≠0

and

v _(2,1) ≠v _(2,2)  <Condition 21-11-2>

v _(3,1)≠0, and v _(3,2)≠0

and

v _(3,1) ≠v _(3,2)  <Condition 21-11-3>

v _(4,1)≠0, and v _(4,2)≠0

and

v _(4,1) ≠v _(4,2)  <Condition 21-11-4>

Given that the partial matrix pertaining to the information X₁, the partial matrix pertaining to information X₂, the partial matrix pertaining to information X₃, and the partial matrix pertaining to information X₄ have to be irregular, the following condition applies.

a _(#i,1,v)%q=a _(#j,1,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-12-1>

(i is an integer greater than or equal to zero and less than or equal to q−1, and j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,1,v)%q=a_(#j,1,v)%q holds for all conforming i and j) This is Condition #Xa-1.

Also, v is an integer greater than or equal to three and less than or equal to r₁, although Condition #Xa-1 does not hold for all v.

a _(#i,2,v)%q=a _(#j,2,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-12-2>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and

a_(#i,2,v)%q=a_(#j,2,v)%q holds for all conforming i and j) This is Condition #Xa-2. Also, v is an integer greater than or equal to three and less than or equal to r₂, although Condition #Xa-2 does not hold for all v.

a _(#i,3,v)%q=a _(#j,3,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-12-2>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,3,1)%_(q)=a_(#j,3,v)%q holds for all conforming i and j) This is Condition #Xa-3.

Also, v is an integer greater than or equal to three and less than or equal to r₃, although Condition #Xa-3 does not hold for all v.

a _(#i,4,v)%q=a _(#j,4,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-12-4>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,4,v)%_(q)=a_(#j,4,v)%q holds for all conforming i and j) This is Condition #Xa-4.

Also, v is an integer greater than or equal to three and less than or equal to r₄, although Condition #Xa-4 does not hold for all v. Condition 21-12-1, Condition 21-12-2, Condition 21-12-3, and Condition 21-12-4 are also expressible as follows.

a _(#i,1,v)%q≠a _(#j,1,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-12′-1>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,4,v)%q≠a_(#j,4,v)%q holds for some i and j) This is Condition #Ya-1.

Also, v is an integer greater than or equal to three and less than or equal to r₁, and Condition #Ya-1 holds for all v.

a _(#i,2,v)%q≠a _(#j,2,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-12′-2>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,2,v)%q a_(#j,2,v)%q for some i and j) This is Condition #Ya-2.

Also, v is an integer greater than or equal to three and less than or equal to r₂, and Condition #Ya-2 holds for all v.

a _(#i,3,v)%q≠a _(#j,3,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-12′-3>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,3,v)%q a_(#j,3,v)%q holds for some i and j) This is Condition #Ya-3.

Also, v is an integer greater than or equal to three and less than or equal to r₃, and Condition #Ya-3 holds for all v.

a _(#i,4,v)%q≠a _(#j,4,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-12′-4>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,4,v)%q a_(#j,4,v)%q holds for some i and j) This is Condition #Ya-4.

Also, v is an integer greater than or equal to three and less than or equal to r₄, and Condition #Ya-4 holds for all v. In the above-mentioned manner, the minimum column weight is set to three in the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, the partial matrix pertaining to the information X₃, and the partial matrix pertaining to the information X₄. By the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ⅘ satisfying the above-mentioned conditions, the irregular LDPC code is generated and high error-correction capability is achievable. The concatenated code that concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ⅘ for achieving high error-correction capability is generated based on the above-mentioned conditions. In order to readily obtain the above-mentioned concatenated code for achieving high error-correction capability, r₁=r₂=r₃=r₄=r (r is equal to or greater than three) should hold true. Next, in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q used in the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ⅘, the gth (g=0, 1, . . . , q−1) parity check polynomial satisfying zero (see Math. 128) is represented as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 450} \right\rbrack} & \; \\ {{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,r_{1}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,r_{2}}} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,r_{3}}} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,1} + D^{{a\# g},4,2} + \ldots + D^{{a\# g},4,r_{4}}} \right){X_{4}(D)}} + {P(D)}} = 0} & \left( {{Math}.\mspace{14mu} 450} \right) \end{matrix}$

In Math. 450, a_(#g,p,q) (p=1, 2, 3, 4; q=1, 2, . . . , r_(p)) is an integer equal to or greater than zero. Also, for ^(∀)(y, z) where y, z=1, 2, . . . , r_(p), and y≠z, a_(#g,p,y)≠a_(#g,p,z) holds. Next, conditions are described for achieving high error-correction capability in Math. 450 when r₁, r₂, r₃ and r₄ are each set to be equal to or greater than four. When r₁, r₂, r₃, and r₄ are each set to be equal to or greater than four, the parity check polynomial satisfying zero in the feedforward periodical LDPC convolutional code based on the parity check polynomial having a time-varying period q is provided as shown below.

$\begin{matrix} {\mspace{79mu} \left\lbrack {{Math}.\mspace{14mu} 451} \right\rbrack} & \; \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{zeroth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 0}},1,1} + D^{{a{\# 0}},1,2} + \ldots + D^{{a{\# 0}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 0}},2,1} + D^{{a{\# 0}},2,2} + \ldots + D^{{a{\# 0}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 0}},3,1} + D^{{a{\# 0}},3,2} + \ldots + D^{{a{\# 0}},3,_{r_{3}}}} \right){X_{3}(D)}} + {\left( {D^{{a{\# 0}},4,1} + D^{{a{\# 0}},4,2} + \ldots + D^{{a{\# 0}},4,_{r_{4}}}} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 451}\text{-}0} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{first}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 1}},1,1} + D^{{a{\# 1}},1,2} + \ldots + D^{{a{\# 1}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 1}},2,1} + D^{{a{\# 1}},2,2} + \ldots + D^{{a{\# 1}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 1}},3,1} + D^{{a{\# 1}},3,2} + \ldots + D^{{a{\# 1}},3,_{r_{3}}}} \right){X_{3}(D)}} + {\left( {D^{{a{\# 1}},4,1} + D^{{a{\# 1}},4,2} + \ldots + D^{{a{\# 1}},4,_{r_{4}}}} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 451}\text{-}1} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{second}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a{\# 2}},1,1} + D^{{a{\# 2}},1,2} + \ldots + D^{{a{\# 2}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a{\# 2}},2,1} + D^{{a{\# 2}},2,2} + \ldots + D^{{a{\# 2}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a{\# 2}},3,1} + D^{{a{\# 2}},3,2} + \ldots + D^{{a{\# 2}},3,_{r_{3}}}} \right){X_{3}(D)}} + {\left( {D^{{a{\# 2}},4,1} + D^{{a{\# 2}},4,2} + \ldots + D^{{a{\# 2}},4,_{r_{4}}}} \right){X_{4}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}\mspace{140mu}} & \left( {{{Math}.\mspace{14mu} 451}\text{-}2} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} a}\text{}\mspace{20mu} {{gth}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# g},1,1} + D^{{a\# g},1,2} + \ldots + D^{{a\# g},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# g},2,1} + D^{{a\# g},2,2} + \ldots + D^{{a\# g},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a\# g},3,1} + D^{{a\# g},3,2} + \ldots + D^{{a\# g},3,_{r_{3}}}} \right){X_{3}(D)}} + {\left( {D^{{a\# g},4,1} + D^{{a\# g},4,2} + \ldots + D^{{a\# g},4,_{r_{4}}}} \right){X_{4}(D)}} + {P(D)}} = 0}\mspace{79mu} \vdots}} & \left( {{{Math}.\mspace{14mu} 451}\text{-}g} \right) \\ {\mspace{79mu} {{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 2} \right)}{th}\mspace{14mu} {\quad{{{{zero}\text{:}\; \left( {D^{{a\# {({q - 2})}},1,1} + D^{{a\# {({q - 2})}},1,2} + \ldots + D^{{a\# {({q - 2})}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 2})}},2,1} + D^{{a\# {({q - 2})}},2,2} + \ldots + D^{{a\# {({q - 2})}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 2})}},3,1} + D^{{a\# {({q - 2})}},3,2} + \ldots + D^{{a\# {({q - 2})}},3,_{r_{3}}}} \right){X_{3}(D)}} + {\left( {D^{{a\# {({q - 2})}},4,1} + D^{{a\# {({q - 2})}},4,2} + \ldots + D^{{a\# {({q - 2})}},4,_{r_{4}}}} \right){X_{4}(D)}} + {P(D)}} = 0}}}} & \left( {{{Math}.\mspace{14mu} 451}\text{-}\left( {q - 2} \right)} \right) \\ {\mspace{79mu} {{{For}\mspace{14mu} a\mspace{14mu} {parity}\mspace{14mu} {check}\mspace{14mu} {polynomial}\mspace{14mu} {satisfying}\mspace{14mu} {a\text{}\mspace{20mu}\left( {q - 1} \right)}{th}\mspace{14mu} {zero}\text{:}}{{{\left( {D^{{a\# {({q - 1})}},1,1} + D^{{a\# {({q - 1})}},1,2} + \ldots + D^{{a\# {({q - 1})}},1,_{r_{1}}}} \right){X_{1}(D)}} + {\left( {D^{{a\# {({q - 1})}},2,1} + D^{{a\# {({q - 1})}},2,2} + \ldots + D^{{a\# {({q - 1})}},2,_{r_{2}}}} \right){X_{2}(D)}} + {\left( {D^{{a\# {({q - 1})}},3,1} + D^{{a\# {({q - 1})}},3,2} + \ldots + D^{{a\# {({q - 1})}},3,_{r_{3}}}} \right){X_{3}(D)}} + {\left( {D^{{a\# {({q - 1})}},4,1} + D^{{a\# {({q - 1})}},4,2} + \ldots + D^{{a\# {({q - 1})}},4,_{r_{4}}}} \right){X_{4}(D)}} + {P(D)}} = 0}}} & \left( {{{Math}.\mspace{14mu} 451}\text{-}\left( {q - 1} \right)} \right) \end{matrix}$

In this case, high error-correction capability is achievable for the partial matrix pertaining to the information X₁ when the following condition is taken into consideration in order to have a minimum column weight of three.

<Condition 21-13-1>

$\begin{matrix} \begin{matrix} {{a_{{\# 0},1,1}\% \mspace{14mu} q} = {a_{{\# 1},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,1}\% \mspace{14mu} q}} \\ {= {v_{1,1}\left( {{where}\mspace{14mu} v_{1,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \\ \begin{matrix} {{a_{{\# 0},1,2}\% \mspace{14mu} q} = {a_{{\# 1},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,2}\% \mspace{14mu} q}} \\ {= {v_{1,2}\left( {{where}\mspace{14mu} v_{1,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \\ \begin{matrix} {{a_{{\# 0},1,3}\% \mspace{14mu} q} = {a_{{\# 1},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},1,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},1,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},1,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},1,3}\% \mspace{14mu} q}} \\ {= {v_{1,3}\left( {{where}\mspace{14mu} v_{1,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \end{matrix}$

Similarly, high error-correction capability is achievable for the partial matrix pertaining to the information X₂ when the following condition is taken into consideration in order to have a minimum column weight of three.

<Condition 21-13-2>

$\begin{matrix} \begin{matrix} {{a_{{\# 0},2,1}\% \mspace{14mu} q} = {a_{{\# 1},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,1}\% \mspace{14mu} q}} \\ {= {v_{2,1}\left( {{where}\mspace{14mu} v_{2,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \\ \begin{matrix} {{a_{{\# 0},2,2}\% \mspace{14mu} q} = {a_{{\# 1},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,2}\% \mspace{14mu} q}} \\ {= {v_{2,2}\left( {{where}\mspace{14mu} v_{2,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \\ \begin{matrix} {{a_{{\# 0},2,3}\% \mspace{14mu} q} = {a_{{\# 1},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},2,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},2,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},2,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},2,3}\% \mspace{14mu} q}} \\ {= {v_{2,3}\left( {{where}\mspace{14mu} v_{2,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \end{matrix}$

Similarly, high error-correction capability is achievable for the partial matrix pertaining to the information X₃ when the following condition is taken into consideration in order to have a minimum column weight of three.

<Condition 21-13-3>

$\begin{matrix} \begin{matrix} {{a_{{\# 0},3,1}\% \mspace{14mu} q} = {a_{{\# 1},3,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,1}\% \mspace{14mu} q}} \\ {= {v_{3,1}\left( {{where}\mspace{14mu} v_{3,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \\ \begin{matrix} {{a_{{\# 0},3,2}\% \mspace{14mu} q} = {a_{{\# 1},3,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,2}\% \mspace{14mu} q}} \\ {= {v_{3,2}\left( {{where}\mspace{14mu} v_{3,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \\ \begin{matrix} {{a_{{\# 0},3,3}\% \mspace{14mu} q} = {a_{{\# 1},3,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},3,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},3,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},3,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},3,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},3,3}\% \mspace{14mu} q}} \\ {= {v_{3,3}\left( {{where}\mspace{14mu} v_{3,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \end{matrix}$

Similarly, high error-correction capability is achievable for the partial matrix pertaining to the information X₄ when the following condition is taken into consideration in order to have a minimum column weight of three.

<Condition 21-13-4>

$\begin{matrix} \begin{matrix} {{a_{{\# 0},4,1}\% \mspace{14mu} q} = {a_{{\# 1},4,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,1}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,1}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,1}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,1}\% \mspace{14mu} q}} \\ {= {v_{4,1}\left( {{where}\mspace{14mu} v_{4,1}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \\ \begin{matrix} {{a_{{\# 0},4,2}\% \mspace{14mu} q} = {a_{{\# 1},4,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,2}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,2}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,2}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,2}\% \mspace{14mu} q}} \\ {= {v_{4,2}\left( {{where}\mspace{14mu} v_{4,2}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \\ \begin{matrix} {{a_{{\# 0},4,3}\% \mspace{14mu} q} = {a_{{\# 1},4,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 2},4,3}\% \mspace{14mu} q}} \\ {= {a_{{\# 3},4,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# g},4,3}\% \mspace{14mu} q}} \\ {= \ldots} \\ {= {a_{{\# {({q - 2})}},4,3}\% \mspace{14mu} q}} \\ {= {a_{{\# {({q - 1})}},4,3}\% \mspace{14mu} q}} \\ {= {v_{4,3}\left( {{where}\mspace{14mu} v_{4,3}\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {fixed}\mspace{14mu} {value}} \right)}} \end{matrix} \end{matrix}$

In the above condition, % means a modulo, and thus α%q represents a remainder after dividing α by q. Condition 21-13-1, Condition 21-13-2, Condition 21-13-3, and Condition 21-13-4 are also expressible as follows. Here, j is one, two, or three.

a _(#k,1,j)%q=v _(1,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(1,j): fixed value)  <Condition 21-13′-1>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,1,j)%q=v₁ j (where v_(1,j) is a fixed value) holds for all k.)

a _(#k,2,j)%q=v _(2,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(2,j): fixed value)  <Condition 21-13′-2>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,2,j)%q=v_(2,j) (where v_(2,j) is a fixed value) holds for all k.)

a _(#k,3,j)%q=v _(3,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(3,j): fixed value)  <Condition 21-13′-3>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,3,j)%q=v_(3,j) (where v_(3,j) is a fixed value) holds for all k.)

a _(#k,4,j)%q=v _(4,j) for ∀k k=0,1,2, . . . ,q−3,q−2,q−1(v _(4,j): fixed value)  <Condition 21-13′-4>

(k is an integer greater than or equal to zero and less than or equal to q−1, and a_(#k,4)j %q=v₄ (where v₄ is a fixed value) holds for all k.)

As described in Embodiments 1 and 6, high error-correction capability is achievable when the following condition is satisfied.

v _(1,1) ≠v _(1,2) , v _(1,1) ≠v _(1,3), and v _(1,2) ≠v _(1,3)  <Condition 21-14-1>

v _(2,1) ≠v _(2,2) , v _(2,1) ≠v _(2,3), and v _(2,2) ≠v _(2,3)  <Condition 21-14-2>

v _(3,1) ≠v _(3,2) , v _(3,1) ≠v _(3,3), and v _(3,2) ≠v _(3,3)  <Condition 21-14-3>

v _(4,1) ≠v _(4,2) , v _(4,1) ≠v _(4,3), and v _(4,2) ≠v _(4,3)  <Condition 21-14-4>

Given that the partial matrix pertaining to the information X₁, the partial matrix pertaining to information X₂, the partial matrix pertaining to information X₃, and the partial matrix pertaining to information X₄ have to be irregular, the following condition applies.

a _(#i,1,v)%q=a _(#j,1,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-15-1>

(i is an integer greater than or equal to zero and less than or equal to q−1, j

i is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#1,1,v)%q=a_(#j,1,v)%q holds for all conforming i and j) This is Condition #Xb-1.

Also, v is an integer greater than or equal to four and less than or equal to r₁, although Condition #Xb-1 does not hold for all v.

a _(#i,2,v)%q=a _(#j,2,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-15-2>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,2,v)%q=a_(#j,2,v)%q holds for all conforming i and j) This is Condition #Xb-2.

Also, v is an integer greater than or equal to four and less than or equal to r₂, although Condition #Xb-2 does not hold for all v.

a _(#i,3,v)%q=a _(#j,3,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-15-3>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,3,v)%q=a_(#j,3,v)%q holds for all conforming i and j) This is Condition #Xb-3.

Also, v is an integer greater than or equal to four and less than or equal to r₃, although Condition #Xb-3 does not hold for all v.

a _(#i,4,v)%q=a _(#j,4,v)%q for ∀i∀j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-15-4>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and a_(#i,4,v)%q=a_(#j,4,v)%q holds for all conforming i and j) This is Condition #Xb-4.

Also, v is an integer greater than or equal to four and less than or equal to r₄, although Condition #Xb-4 does not hold for all v. Condition 21-15-1, Condition 21-15-2, Condition 21-15-3, and Condition 21-15-4 are also expressible as follows.

a _(#i,1,v)%q≠a _(#j,1,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-15′-1>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and some i and j exist that satisfy a_(#i,1,v)%q a_(#j,1,v)%q) This is Condition #Yb-1.

Also, v is an integer greater than or equal to four and less than or equal to r₁, and Condition #Yb-1 holds for all v.

a _(#i,2,v)%q≠a _(#j,2,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-15′-2>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and some i and j exist that satisfy a_(#i,2,v)%q a_(#j,2,v)%q) This is Condition #Yb-2.

Also, v is an integer greater than or equal to four and less than or equal to r₂, and Condition #Yb-2 holds for all v.

a _(#i,3,v)%q≠a _(#j,3,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-15′-3>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and some i and j exist that satisfy a_(#i,3,v)%q a_(#j,3,v)%q) This is Condition #Yb-3.

Also, v is an integer greater than or equal to four and less than or equal to r₃, and Condition #Yb-3 holds for all v.

a _(#i,4,v)%q≠a _(#j,4,v)%q for ∃i∃j i,j=0,1,2, . . . ,q−3,q−2,q−1;i≠j  <Condition 21-15′-4>

(i is an integer greater than or equal to zero and less than or equal to q−1, j is an integer greater than or equal to zero and less than or equal to q−1, i≠j, and some i and j exist that satisfy a_(#i,4,v)%q a_(#j,4,v)%q) This is Condition #Yb-4.

Also, v is an integer greater than or equal to four and less than or equal to r₄, and Condition #Yb-4 holds for all v. In the above-mentioned manner, the minimum column weight is set to three in each of the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, the partial matrix pertaining to the information X₃, and the partial matrix pertaining to the information X₄. By the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ⅘ satisfying the above-mentioned conditions, the irregular LDPC code is generated and high error-correction capability is achievable. The concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ⅘ for achieving high error-correction capability is generated based on the above-mentioned conditions. In order to readily obtain the above-mentioned concatenated code for achieving high error-correction capability, r₁=r₂=r₃=r₄=r (r is equal to or greater than four) should hold true.

As for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme of a coding rate of ⅔ described in the present embodiment, a code generated using any of the code generation methods described in the present embodiment is decoded by performing belief propagation decoding, such as the BP decoding, sum-product decoding, min-sum decoding, offset BP decoding, Normalized BP decoding, Shuffled BP decoding, and Layered BP decoding in which scheduling is performed as disclosed in Non-Patent Literature 4 to 6, based on the parity check matrix generated using the parity check matrix generation method described in the present embodiment as described with use of FIG. 108. Therefore, high-speed decoding is realized and high error-correction capability is achieved.

As described above, by implementing the generation method, the encoder, the configuration of the parity check matrix, the decoding method and the like for the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ⅘, the decoding method using the belief propagation algorithm for realizing high-speed decoding is applied to achieve high error-correction capability. The requirements described in the present embodiment are just examples, and the error correction code for achieving high error-correction capability is generated in other methods.

The following describes examples of a time period (time-varying period) for the feedforward LDPC convolutional code based on the parity check polynomial in the concatenated code concatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on the parity check polynomial using the tail-biting scheme having a coding rate of ⅘, based on Embodiment 6:

(1) The time-varying period q is a prime number.

(2) Time-varying period q is an odd number and the number of divisors of q is small.

(3) The time-varying period q is assumed to be α×β,

where α and β are odd numbers other than one and are prime numbers.

(4) The time-varying period q is assumed to be α^(n),

where α is an odd number other than one and is a prime number, and n is an integer equal to or greater than two.

(5) The time-varying period q is assumed to be α×β×γ,

where α, β, and γ are odd numbers other than one and are prime numbers.

(6) The time-varying period q is assumed to be αxβ×γ×δ.

where, α, β, β, and δ are odd numbers other than one and are prime numbers. Here, when the above (2) is taken into consideration, the following other examples are considered:

(7) The time-varying period q is assumed to be A^(u)×β^(v), where, A and B are odd numbers other than one and are prime numbers, A≠B, and u and v are integers equal to or greater than one.

(8) The time-varying period q is assumed to be A^(u)×B^(v)×C^(w), where, A, B, and C are odd numbers other than one and are prime numbers, A≠B, A≠C, and B≠C, and u, v, and w are integers equal to or greater than one.

(9) The time-varying period q is assumed to be A^(u)×B^(v)×C^(w)×D^(x),

where, A, B, C, and D are odd numbers other than one and are prime numbers, A≠B, A≠C, A≠D, B≠C, B≠D, and C≠D, and u, v, w, and x are integers equal to or greater than one. As described above, however, since the effect described in Embodiment 6 is achieved as the time-varying period q grows large, it is not always true that a code having high error-correction capability is not obtained when the time-varying period m is an even number. For example, conditions as shown below may be satisfied when the time-varying period m is an even number:

(10) The time-varying period m is assumed to be 2^(g)×K,

where, K is a prime number, and g is an integer equal to or greater than one.

(11) The time-varying period m is assumed to be 2^(g)×L,

where, L is an odd number and the number of divisors of L is small, and g is an integer equal to or greater than one.

(12) The time-varying period m is assumed to be 2^(g)×α×β,

where, α and β are odd numbers other than one and are prime numbers, and

g is an integer equal to or greater than one.

(13) The time-varying period m is assumed to be 2^(g)×α^(n),

where, α is an odd number other than one and is a prime number, n is an integer equal to or greater than two, and g is an integer equal to or greater than one.

(14) The time-varying period m is assumed to be 2^(g)×α×β×γ,

where, α, β, and γ are odd numbers other than one and are prime numbers, and g is an integer equal to or greater than one.

(15) The time-varying period m is assumed to be 2^(g)×α×β×γ×δ,

where, α, β, γ, and δ are odd numbers other than one and are prime numbers, and g is an integer equal to or greater than one.

(16) The time-varying period m is assumed to be 2^(g)×A^(u)×B^(v),

where, A and B are odd numbers other than one and are prime numbers, A≠B, u and v are integers equal to or greater than one, and g is an integer equal to or greater than one.

(17) The time-varying period m is assumed to be 2^(g)×A^(u)×B^(v)×C^(w),

where, A, B, and C are odd numbers other than one and are prime numbers, A≠B, A≠C, and B≠C, u, v, and w are integers equal to or greater than one, and g is an integer equal to or greater than one.

(18) The time-varying period m is assumed to be 2^(g)×A^(u)×B^(v)×C^(w)×D^(x),

where, A, B, C, and D are odd numbers other than one and are prime numbers, A B, A≠C, A≠D, B≠C, B≠D, and C≠D, u, v, w, and x are integers equal to or greater than one, and g is an integer equal to or greater than one.

However, when the time-varying period q is an odd number not satisfying any of the above-mentioned conditions (1) to (9) or an even number not satisfying any of the above-mentioned conditions (10) to (18), high error-correction capability is achievable.

Note that it is not always true that a code having high error-correction capability is not otbtained when the time-varying period q is an even number.

For example, in the DVB standard disclosed in Non-Patent Literature 30, 16200 bits and 64800 bits are each defined as the block length of the LDPC code. Considering such a block size, 15, 27, 45, 81 and 135 are considered as examples of an appropriate value for the time-varying period.

The several important conditions are presented in the above-mentioned description of the code generation method for the parity check matrix for the concatenated code contatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on a parity check polynomial using the tail-biting scheme of a coding rate of ⅘, when there are a plurality of values for column weights of the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, the partial matrix pertaining to the information X₃, and the partial matrix pertaining to the information X₄. When the parity check polynomial satisfying zero in the feedforward LDPC convolutional code based on the parity check polynomial in the above-mentioned concatenated code is shown by Math. 448, an appropriate code can be obtained by adding the following conditions to Condition 21-10-1, Condition 21-10-2, Condition 21-10-3, and Condition 21-11-4, and Condition 21-10′-1, Condition 21-10′-2, Condition 21-10′-3, and Condition 21-10′-4, and Condition 21-11-1, Condition 21-11-2, Condition 21-11-3, and Condition 21-11-4, with reference to Embodiment 6.

<Condition 21-16>

[Math. 452]

v _(i,j) ≠v _(s,t)  (Math. 452)

Here, i is an integer greater than or equal to one and less than or equal to four, j is one or two, s is an integer greater than or equal to one and less than or equal to four, and t is one or two, and Math. 452 holds for all i, j, s, and t other than the values satisfying (i, j)=(s, t).

<Condition 21-17>

i is an integer greater than or equal to one and less than or equal to four, j is one or two, and v_(i,j) is not a divisor of the time-varying period q or is one for all values of i and j.

The several important conditions are presented in the above-mentioned description of the code generation method for the parity check matrix for the concatenated code contatenating the accumulator, via the interleaver, with the feedforward LDPC convolutional code based on a parity check polynomial using the tail-biting scheme of a coding rate of ⅘, when the column weight is equal for all columns of the partial matrix pertaining to the information X₁, the partial matrix pertaining to the information X₂, the partial matrix pertaining to the information X₃, and the partial matrix pertaining to the information X₄. When the parity check polynomial satisfying zero in the feedforward LDPC convolutional code based on the parity check polynomial in the above-mentioned concatenated code is shown by Math. 444-0 to Math. 444-(q−1), an appropriate code can be obtained by adding the following conditions to Condition 21-4, Condition 21-4′, and Condition 21-5, with reference to Embodiment 6.

<Condition 21-18>

[Math. 453]

v _(i,j) ≠v _(s,t)  (Math. 453)

Here, i is an integer greater than or equal to one and less than or equal to four, j is an integer greater than or equal to one and less than or equal to r, s is an integer greater than or equal to one and less than or equal to four, and t is an integer greater than or equal to one and less than or equal to r, and Math. 453 holds for all i, j, s, and t other than the values satisfying (i, j)=(s, t).

<Condition 21-19>

i is an integer greater than or equal to one and less than or equal to four, j is an integer greater than or equal to one and less than or equal to r, and v_(i,j) is not a divisor of the time-varying period q or is one for all values of i and j.

INDUSTRIAL APPLICABILITY

The encoding method and encoder or the like according to the present invention have high error-correction capability, and can thereby secure high data receiving quality.

REFERENCE SIGNS LIST

-   -   100, 2907, 2914, 3204, 3103, 3208, 3212 LDPC-CC encoder     -   110 Data computing section     -   120 Parity computing section     -   130 Weight control section     -   140 modulo 2 adder (exclusive OR operator)     -   111-1 to 111-M, 121-1 to 121-M, 221-1 to 221-M, 231-1 to 231-M         Shift register     -   112-0 to 112-M, 122-0 to 122-M, 222-0 to 222-M, 232-0 to 232-M         Weight multiplier     -   1910, 2114, 2617, 2605 Transmitting apparatus     -   1911, 2900, 3200 Encoder     -   1192 Modulating section     -   1920, 2131, 2609, 2613 Receiving apparatus     -   1921 Receiving section     -   1922 Log likelihood ratio generating section     -   1923, 3310 Decoder     -   2110, 2130, 2600, 2608 Communication apparatus     -   2112, 2312, 2603 Erasure correction coding-related processing         section     -   2113, 2604 Error correction encoding section     -   2120, 2607 Communication channel     -   2132, 2610 Error correction decoding section     -   2133, 2433, 2611 Erasure correction decoding-related processing         section     -   2211 Packet generating section     -   2215, 2902, 2909, 3101, 3104, 3202, 3206, 3210 Reordering         section     -   2216 Erasure correction encoder (parity packet generating         section)     -   2217, 2317 Error detection code adding section     -   2314 Erasure correction encoding section     -   2316, 2560 Erasure correction encoder     -   2435 Error detection section     -   2436 Erasure correction decoder     -   2561 First erasure correction encoder     -   2562 Second erasure correction encoder     -   2563 Third erasure correction encoder     -   2564 Selection section     -   3313 BP decoder     -   4403 Known information insertion section     -   4405 Encoder     -   4407 Known information deleting section     -   4409 Modulating section     -   4603 Log likelihood ratio insertion section     -   4605 Decoding section     -   4607 Known information deleting section     -   44100 Error correction encoding section     -   44200 Transmitting apparatus     -   46100 Error correction decoding section     -   5800 Encoder     -   5801 Information generating section     -   5802-1 First information computing section     -   5802-2 Second information computing section     -   5802-3 Third information computing section     -   5803 Parity computing section     -   5804, 5903, 6003 Adder     -   5805 Coding rate setting section     -   5806, 5904, 6004 Weight control section     -   5901-1 to 5901-M, 6001-1 to 6001-M Shift register     -   5902-0 to 5902-M, 6002-0 to 6002-M Weight multiplier     -   6100 Decoder     -   6101 Log likelihood ratio setting section     -   6102 Matrix processing computing section     -   6103 Storage section     -   6104 Row processing computing section     -   6105 Column processing computing section     -   6200, 6300 Communication apparatus     -   6201 Encoder     -   6202 Modulating section     -   6203 Coding rate determining section     -   6301 Receiving section     -   6302 Log likelihood ratio generating section     -   6303 Decoder     -   6304 Control information generating section     -   7600 Transmitting device     -   7601 Encoder     -   7602 Modulation section     -   7610 Receiving device     -   7611 Receiving section     -   7612 Log-likelihood ratio generating section     -   7613 Decoder     -   7700 Digital broadcasting system     -   7701 Broadcasting station     -   7711 Television     -   7712 DVD recorder     -   7713 STB (Set Top Box)     -   7720 Computer     -   7740, 7760 Antenna     -   7741 On-board television     -   7730 Mobile phone     -   8440 Antenna     -   7800 Receiver     -   7801 Tuner     -   7802 Demodulator     -   7803 Stream I/O section     -   7804 Signal processing section     -   7805 Audiovisual output section     -   7806 Audio output section     -   7807 Video display section     -   7808 Drive     -   7809 Stream interface     -   7810 Operation input section     -   7811 Audiovisual interface     -   7830, 7840 Transmission medium     -   7850, 8607 Remote control     -   8604 Receiving apparatus     -   8600 Audiovisual output apparatus     -   8605 Interface     -   8606 Communication apparatus     -   8701 Video coding section     -   8703 Audio coding section     -   8705 Data coding section     -   8700 Information source coding section     -   8707 Transmission section     -   8712 Receiving section     -   8710_1 to 8710_M Antenna     -   8714 Video decoding section     -   8716 Audio decoding section     -   8718 Data decoding section     -   8719 Information source decoding section 

1. An encoding method, comprising: generating a parity bit sequence by encoding an information sequence with feed-forward LDPC (Low-Density Parity Check) convolutional codes based on a plurality of parity check polynomials each having a coding rate of (n−1)/n, where n is an integer greater than or equal to two; generating an interleaved parity bit sequence by performing an interleaving process on the parity bit sequence; generating an accumulated parity bit sequence by performing an accumulation process on the interleaved parity bit sequence, the accumulation process being an exclusive OR operation performed on bits of the interleaved parity bit sequence and on bits of a delayed accumulated parity bit sequence; and generating a coded sequence from the information sequence and the accumulated parity bit sequence.
 2. A decoding method for decoding a coded sequence, the coded sequence being encoded using a predetermined encoding method involving: generating a parity bit sequence by encoding an information sequence with feed-forward LDPC (Low-Density Parity Check) convolutional codes based on a plurality of parity check polynomials each having a coding rate of (n−1)/n, where n is an integer greater than or equal to two; generating an interleaved parity bit sequence by performing an interleaving process on the parity bit sequence; generating an accumulated parity bit sequence by performing an accumulation process on the interleaved parity bit sequence, the accumulation process being an exclusive OR operation performed on bits of the interleaved parity bit sequence and on bits of a delayed accumulated parity bit sequence; and generating a coded sequence from the information sequence and the accumulated parity bit sequence, and the decoding method comprising: decoding the coded sequence using belief propagation based on a parity check matrix corresponding to the predetermined encoding method. 